@agent-native/core 0.167.1 → 0.168.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 (117) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/agent-native-docs/SKILL.md +11 -0
  3. package/corpus/templates/assets/.agents/skills/agent-native-docs/SKILL.md +11 -0
  4. package/corpus/templates/brain/.agents/skills/agent-native-docs/SKILL.md +11 -0
  5. package/corpus/templates/brain/actions/list-sources.ts +17 -7
  6. package/corpus/templates/brain/app/components/brain/Surface.tsx +4 -2
  7. package/corpus/templates/brain/app/lib/brain.ts +13 -3
  8. package/corpus/templates/brain/server/lib/brain-health.ts +5 -8
  9. package/corpus/templates/brain/server/lib/brain.ts +1 -0
  10. package/corpus/templates/brain/server/lib/capture-sanitization.ts +5 -0
  11. package/corpus/templates/brain/server/routes/api/brain/queue/run.post.ts +3 -2
  12. package/corpus/templates/calendar/.agents/skills/agent-native-docs/SKILL.md +11 -0
  13. package/corpus/templates/chat/.agents/skills/agent-native-docs/SKILL.md +11 -0
  14. package/corpus/templates/clips/.agents/skills/agent-native-docs/SKILL.md +11 -0
  15. package/corpus/templates/clips/app/routes/download.tsx +78 -131
  16. package/corpus/templates/clips/desktop/src/app.tsx +11 -10
  17. package/corpus/templates/clips/desktop/src/lib/desktop-oauth-window.ts +23 -0
  18. package/corpus/templates/content/.agents/skills/agent-native-docs/SKILL.md +11 -0
  19. package/corpus/templates/crm/.agents/skills/agent-native-docs/SKILL.md +11 -0
  20. package/corpus/templates/design/.agents/skills/agent-native-docs/SKILL.md +11 -0
  21. package/corpus/templates/dispatch/.agents/skills/agent-native-docs/SKILL.md +11 -0
  22. package/corpus/templates/factory/.agents/skills/agent-native-docs/SKILL.md +11 -0
  23. package/corpus/templates/forms/.agents/skills/agent-native-docs/SKILL.md +11 -0
  24. package/corpus/templates/macros/.agents/skills/agent-native-docs/SKILL.md +11 -0
  25. package/corpus/templates/mail/.agents/skills/agent-native-docs/SKILL.md +11 -0
  26. package/corpus/templates/plan/.agents/skills/agent-native-docs/SKILL.md +11 -0
  27. package/corpus/templates/slides/.agents/skills/agent-native-docs/SKILL.md +11 -0
  28. package/corpus/templates/tasks/.agents/skills/agent-native-docs/SKILL.md +11 -0
  29. package/dist/chat-threads/store.d.ts +7 -0
  30. package/dist/chat-threads/store.js +15 -0
  31. package/dist/client/AboutAgentNativeDialog.d.ts +5 -0
  32. package/dist/client/AboutAgentNativeDialog.js +56 -0
  33. package/dist/client/AgentPanel.d.ts +5 -1
  34. package/dist/client/AgentPanel.js +8 -8
  35. package/dist/client/AssistantChat.d.ts +3 -1
  36. package/dist/client/AssistantChat.js +22 -6
  37. package/dist/client/CommandMenu.d.ts +6 -1
  38. package/dist/client/CommandMenu.js +46 -3
  39. package/dist/client/EnvironmentBadge.js +4 -1
  40. package/dist/client/MultiTabAssistantChat.d.ts +3 -1
  41. package/dist/client/MultiTabAssistantChat.js +5 -4
  42. package/dist/client/agent-native-version.d.ts +12 -0
  43. package/dist/client/agent-native-version.js +36 -0
  44. package/dist/client/agent-page/AgentJobsTab.js +39 -6
  45. package/dist/client/agent-page/AutomationScheduleDialog.d.ts +10 -1
  46. package/dist/client/agent-page/AutomationScheduleDialog.js +3 -2
  47. package/dist/client/agent-page/ScheduledTriggerNotice.d.ts +22 -0
  48. package/dist/client/agent-page/ScheduledTriggerNotice.js +84 -0
  49. package/dist/client/agent-page/scheduled-trigger-state.d.ts +28 -0
  50. package/dist/client/agent-page/scheduled-trigger-state.js +10 -0
  51. package/dist/client/agent-page/use-jobs.d.ts +7 -0
  52. package/dist/client/agent-page/use-jobs.js +14 -0
  53. package/dist/client/blocks/library/diagram.config.d.ts +4 -1
  54. package/dist/client/blocks/library/diagram.js +1 -1
  55. package/dist/client/chat/run-recovery.js +15 -7
  56. package/dist/client/use-chat-threads.d.ts +7 -0
  57. package/dist/client/use-chat-threads.js +144 -40
  58. package/dist/collab/routes.d.ts +1 -1
  59. package/dist/config.d.ts +3 -1
  60. package/dist/config.js +14 -9
  61. package/dist/deploy/build.d.ts +5 -0
  62. package/dist/deploy/build.js +12 -1
  63. package/dist/framework-tools.js +1 -0
  64. package/dist/jobs/actions/get-scheduled-trigger-status.d.ts +13 -0
  65. package/dist/jobs/actions/get-scheduled-trigger-status.js +21 -0
  66. package/dist/localization/core-messages/ar-SA.js +6 -0
  67. package/dist/localization/core-messages/de-DE.js +6 -0
  68. package/dist/localization/core-messages/en-US.d.ts +6 -0
  69. package/dist/localization/core-messages/en-US.js +6 -0
  70. package/dist/localization/core-messages/es-ES.js +6 -0
  71. package/dist/localization/core-messages/fr-FR.js +6 -0
  72. package/dist/localization/core-messages/hi-IN.js +6 -0
  73. package/dist/localization/core-messages/ja-JP.js +6 -0
  74. package/dist/localization/core-messages/ko-KR.js +6 -0
  75. package/dist/localization/core-messages/pt-BR.js +6 -0
  76. package/dist/localization/core-messages/zh-CN.js +6 -0
  77. package/dist/localization/core-messages/zh-TW.js +6 -0
  78. package/dist/localization/core-messages.d.ts +6 -0
  79. package/dist/localization/default-messages.d.ts +14 -0
  80. package/dist/localization/default-messages.js +14 -0
  81. package/dist/mcp/screen-memory-stdio.d.ts +7 -7
  82. package/dist/notifications/routes.d.ts +1 -1
  83. package/dist/observability/routes.d.ts +3 -3
  84. package/dist/provider-api/actions/custom-provider-registration.d.ts +1 -1
  85. package/dist/provider-api/actions/provider-api.d.ts +12 -12
  86. package/dist/resources/handlers.d.ts +2 -2
  87. package/dist/server/action-discovery.js +4 -0
  88. package/dist/server/agent-chat/recurring-jobs-runtime.d.ts +42 -1
  89. package/dist/server/agent-chat/recurring-jobs-runtime.js +102 -9
  90. package/dist/server/agent-chat-plugin.d.ts +3 -1
  91. package/dist/server/agent-chat-plugin.js +115 -24
  92. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  93. package/dist/server/attribution.d.ts +29 -0
  94. package/dist/server/attribution.js +68 -0
  95. package/dist/server/auth.js +58 -15
  96. package/dist/server/better-auth-instance.js +16 -4
  97. package/dist/server/identity-sso.js +14 -2
  98. package/dist/server/realtime-token.d.ts +1 -1
  99. package/dist/server/request-context.d.ts +8 -0
  100. package/dist/server/request-context.js +4 -0
  101. package/dist/templates/chat/.agents/skills/agent-native-docs/SKILL.md +11 -0
  102. package/dist/templates/default/.agents/skills/agent-native-docs/SKILL.md +11 -0
  103. package/dist/templates/headless/.agents/skills/agent-native-docs/SKILL.md +11 -0
  104. package/dist/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +11 -0
  105. package/dist/vite/agent-native-config-loader.js +1 -1
  106. package/dist/vite/client.js +19 -8
  107. package/dist/vite/package-versions.d.ts +1 -0
  108. package/dist/vite/package-versions.js +97 -0
  109. package/docs/content/agent-native-config.mdx +55 -31
  110. package/docs/content/deployment.mdx +3 -1
  111. package/docs/content/environment-variables.mdx +51 -14
  112. package/docs/content/recurring-jobs.mdx +6 -0
  113. package/package.json +2 -2
  114. package/src/templates/chat/.agents/skills/agent-native-docs/SKILL.md +11 -0
  115. package/src/templates/default/.agents/skills/agent-native-docs/SKILL.md +11 -0
  116. package/src/templates/headless/.agents/skills/agent-native-docs/SKILL.md +11 -0
  117. package/src/templates/workspace-core/.agents/skills/agent-native-docs/SKILL.md +11 -0
@@ -101,6 +101,11 @@ export declare function isDurableBackgroundDeployEnabled(): boolean;
101
101
  export declare const NETLIFY_INTEGRATION_RECOVERY_FUNCTION_NAME = "server-integration-recovery";
102
102
  export declare function isIntegrationDurableDispatchDeployEnabled(): boolean;
103
103
  export declare const NETLIFY_RECURRING_JOBS_FUNCTION_NAME = "agent-native-recurring-jobs";
104
+ /**
105
+ * Routed through the same resolver that produces the runtime marker, so the gate
106
+ * that emits the scheduled function and the value the deployed app reports
107
+ * cannot drift: a build that skips the emit always ships `"disabled"`.
108
+ */
104
109
  export declare function isRecurringJobsDeployEnabled(): boolean;
105
110
  /**
106
111
  * Keep-warm is opt-in because a once-a-minute wake prevents autosuspend on
@@ -24,6 +24,7 @@ import { INTEGRATION_RECOVERY_RUNTIME_MARKER, INTEGRATION_RETRY_SWEEP_PATH, INTE
24
24
  import { isValidCron } from "../jobs/cron.js";
25
25
  import { RECURRING_JOBS_SWEEP_PATH, RECURRING_JOBS_SWEEP_TOKEN_SUBJECT, } from "../jobs/scheduler-dispatch.js";
26
26
  import { findWorkspaceRoot as findAgentNativeWorkspaceRoot } from "../scripts/utils.js";
27
+ import { RECURRING_JOBS_BUILD_MARKER_ENV_VAR, resolveRecurringJobsBuildMarker, } from "../server/agent-chat/recurring-jobs-runtime.js";
27
28
  import { normalizeAppBasePath } from "../server/app-base-path.js";
28
29
  import { DEFAULT_SPECULATION_RULES_PATH, resolveSsrCacheHeaders, resolveSsrCacheKeyHeaders, SSR_QUERY_CACHE_KEY_HEADER, } from "../shared/cache-control.js";
29
30
  import { mcpEmbedStaticAssetRouteRules } from "../shared/mcp-embed-headers.js";
@@ -2407,8 +2408,13 @@ function isTruthyEnv(name) {
2407
2408
  function isDisabledByEnv(name) {
2408
2409
  return isTruthyEnv(name);
2409
2410
  }
2411
+ /**
2412
+ * Routed through the same resolver that produces the runtime marker, so the gate
2413
+ * that emits the scheduled function and the value the deployed app reports
2414
+ * cannot drift: a build that skips the emit always ships `"disabled"`.
2415
+ */
2410
2416
  export function isRecurringJobsDeployEnabled() {
2411
- return !isDisabledByEnv("AGENT_NATIVE_DISABLE_RECURRING_JOBS");
2417
+ return resolveRecurringJobsBuildMarker(process.env) === "enabled";
2412
2418
  }
2413
2419
  /**
2414
2420
  * Keep-warm is opt-in because a once-a-minute wake prevents autosuspend on
@@ -3887,6 +3893,11 @@ export function resolveNitroBuildReplacements(env = process.env, deploymentEnvir
3887
3893
  // well as in the Vite server bundle.
3888
3894
  "process.env.AGENT_NATIVE_RELEASE_MIGRATIONS": JSON.stringify(env.AGENT_NATIVE_RELEASE_MIGRATIONS?.trim() || ""),
3889
3895
  "process.env.AGENT_NATIVE_BUILD_DEPLOY_CONTEXT": JSON.stringify(env.CONTEXT?.trim() || env.NETLIFY_CONTEXT?.trim() || ""),
3896
+ // Whether the recurring-jobs scheduled function exists is decided HERE, by
3897
+ // the build env. `scheduledTriggerAvailability` cannot re-derive it later —
3898
+ // a pipeline that sets the kill switch only for the build leaves no runtime
3899
+ // trace of it — so hand the decision to the runtime explicitly.
3900
+ [`process.env.${RECURRING_JOBS_BUILD_MARKER_ENV_VAR}`]: JSON.stringify(resolveRecurringJobsBuildMarker(env)),
3890
3901
  ...(configuredDeploymentEnvironment
3891
3902
  ? {
3892
3903
  "process.env.AGENT_NATIVE_DEPLOYMENT_ENVIRONMENT": JSON.stringify(configuredDeploymentEnvironment),
@@ -126,6 +126,7 @@ export const CORE_ACTION_GROUPS = {
126
126
  "manage-recurring-job": "automation",
127
127
  "run-automation-now": "automation",
128
128
  "list-automation-runs": "automation",
129
+ "get-scheduled-trigger-status": "automation",
129
130
  "list-automations": "automation",
130
131
  "manage-automation": "automation",
131
132
  "get-usage-alerts": "automation",
@@ -0,0 +1,13 @@
1
+ import { type ScheduledTriggerAvailability } from "../../server/agent-chat/recurring-jobs-runtime.js";
2
+ export type ScheduledTriggerStatus = ScheduledTriggerAvailability;
3
+ /**
4
+ * Read surface for "will a schedule-triggered automation actually fire here".
5
+ *
6
+ * A separate action rather than a field on `list-automations` / `list-recurring-jobs`:
7
+ * both of those return bare arrays that several callers map over directly, so
8
+ * adding a sibling field means an envelope and a breaking change at every call
9
+ * site. This is deploy-scoped rather than per-automation data anyway — it never
10
+ * varies by row — so it caches independently and for much longer.
11
+ */
12
+ declare const _default: import("../../action.js").ActionDefinition<Record<string, never>, ScheduledTriggerAvailability>;
13
+ export default _default;
@@ -0,0 +1,21 @@
1
+ import { z } from "zod";
2
+ import { defineAction } from "../../action.js";
3
+ import { scheduledTriggerAvailability, } from "../../server/agent-chat/recurring-jobs-runtime.js";
4
+ /**
5
+ * Read surface for "will a schedule-triggered automation actually fire here".
6
+ *
7
+ * A separate action rather than a field on `list-automations` / `list-recurring-jobs`:
8
+ * both of those return bare arrays that several callers map over directly, so
9
+ * adding a sibling field means an envelope and a breaking change at every call
10
+ * site. This is deploy-scoped rather than per-automation data anyway — it never
11
+ * varies by row — so it caches independently and for much longer.
12
+ */
13
+ export default defineAction({
14
+ description: "Report whether schedule-triggered automations can actually fire in this deploy, and which driver (or missing driver) decides that. Used by the Agent Automations page to warn that a schedule will never run.",
15
+ agentTool: false,
16
+ schema: z.object({}),
17
+ http: { method: "GET" },
18
+ readOnly: true,
19
+ parallelSafe: true,
20
+ run: async () => scheduledTriggerAvailability(),
21
+ });
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "الإشارة إلى ملفات أو وكلاء أو موارد",
25
25
  "commands.new": "مثل /clear",
26
26
  "commands.plan": "التبديل إلى التخطيط للقراءة فقط",
27
+ "aboutAgentNative.title": "حول Agent Native",
28
+ "aboutAgentNative.version": "الإصدار",
29
+ "aboutAgentNative.environment": "البيئة",
30
+ "aboutAgentNative.build": "البنية",
31
+ "aboutAgentNative.copyDiagnostics": "نسخ بيانات التشخيص",
32
+ "aboutAgentNative.unknown": "غير معروف",
27
33
  "common.agent": "الوكيل",
28
34
  "common.cancel": "إلغاء",
29
35
  "common.collapse": "طي",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "Dateien, Agenten oder Ressourcen erwähnen",
25
25
  "commands.new": "Entspricht /clear",
26
26
  "commands.plan": "Zum schreibgeschützten Planungsmodus wechseln",
27
+ "aboutAgentNative.title": "Über Agent Native",
28
+ "aboutAgentNative.version": "Version",
29
+ "aboutAgentNative.environment": "Umgebung",
30
+ "aboutAgentNative.build": "Build",
31
+ "aboutAgentNative.copyDiagnostics": "Diagnosedaten kopieren",
32
+ "aboutAgentNative.unknown": "Unbekannt",
27
33
  "common.agent": "Agent",
28
34
  "common.cancel": "Abbrechen",
29
35
  "common.collapse": "Einklappen",
@@ -24,6 +24,12 @@ declare const messages: {
24
24
  readonly "commands.mention": "Mention files, agents, or resources";
25
25
  readonly "commands.new": "Same as /clear";
26
26
  readonly "commands.plan": "Switch to read-only planning";
27
+ readonly "aboutAgentNative.title": "About Agent Native";
28
+ readonly "aboutAgentNative.version": "Version";
29
+ readonly "aboutAgentNative.environment": "Environment";
30
+ readonly "aboutAgentNative.build": "Build";
31
+ readonly "aboutAgentNative.copyDiagnostics": "Copy diagnostics";
32
+ readonly "aboutAgentNative.unknown": "Unknown";
27
33
  readonly "common.agent": "Agent";
28
34
  readonly "common.cancel": "Cancel";
29
35
  readonly "common.collapse": "Collapse";
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "Mention files, agents, or resources",
25
25
  "commands.new": "Same as /clear",
26
26
  "commands.plan": "Switch to read-only planning",
27
+ "aboutAgentNative.title": "About Agent Native",
28
+ "aboutAgentNative.version": "Version",
29
+ "aboutAgentNative.environment": "Environment",
30
+ "aboutAgentNative.build": "Build",
31
+ "aboutAgentNative.copyDiagnostics": "Copy diagnostics",
32
+ "aboutAgentNative.unknown": "Unknown",
27
33
  "common.agent": "Agent",
28
34
  "common.cancel": "Cancel",
29
35
  "common.collapse": "Collapse",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "Mencionar archivos, agentes o recursos",
25
25
  "commands.new": "Igual que /clear",
26
26
  "commands.plan": "Cambiar a la planificación de solo lectura",
27
+ "aboutAgentNative.title": "Acerca de Agent Native",
28
+ "aboutAgentNative.version": "Versión",
29
+ "aboutAgentNative.environment": "Entorno",
30
+ "aboutAgentNative.build": "Compilación",
31
+ "aboutAgentNative.copyDiagnostics": "Copiar diagnóstico",
32
+ "aboutAgentNative.unknown": "Desconocida",
27
33
  "common.agent": "Agente",
28
34
  "common.cancel": "Cancelar",
29
35
  "common.collapse": "Contraer",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "Mentionner des fichiers, des agents ou des ressources",
25
25
  "commands.new": "Identique à /clear",
26
26
  "commands.plan": "Passer à la planification en lecture seule",
27
+ "aboutAgentNative.title": "À propos d’Agent Native",
28
+ "aboutAgentNative.version": "Version",
29
+ "aboutAgentNative.environment": "Environnement",
30
+ "aboutAgentNative.build": "Build",
31
+ "aboutAgentNative.copyDiagnostics": "Copier les diagnostics",
32
+ "aboutAgentNative.unknown": "Inconnue",
27
33
  "common.agent": "Agent",
28
34
  "common.cancel": "Annuler",
29
35
  "common.collapse": "Réduire",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "फ़ाइलों, एजेंटों या संसाधनों का उल्लेख करें",
25
25
  "commands.new": "/clear के समान",
26
26
  "commands.plan": "केवल-पढ़ने योग्य योजना मोड पर जाएँ",
27
+ "aboutAgentNative.title": "Agent Native के बारे में",
28
+ "aboutAgentNative.version": "संस्करण",
29
+ "aboutAgentNative.environment": "पर्यावरण",
30
+ "aboutAgentNative.build": "बिल्ड",
31
+ "aboutAgentNative.copyDiagnostics": "डायग्नोस्टिक कॉपी करें",
32
+ "aboutAgentNative.unknown": "अज्ञात",
27
33
  "common.agent": "एजेंट",
28
34
  "common.cancel": "रद्द करें",
29
35
  "common.collapse": "समेटें",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "ファイル、エージェント、リソースをメンション",
25
25
  "commands.new": "/clear と同じ",
26
26
  "commands.plan": "読み取り専用の計画モードに切り替え",
27
+ "aboutAgentNative.title": "Agent Native について",
28
+ "aboutAgentNative.version": "バージョン",
29
+ "aboutAgentNative.environment": "環境",
30
+ "aboutAgentNative.build": "ビルド",
31
+ "aboutAgentNative.copyDiagnostics": "診断情報をコピー",
32
+ "aboutAgentNative.unknown": "不明",
27
33
  "common.agent": "エージェント",
28
34
  "common.cancel": "キャンセル",
29
35
  "common.collapse": "折りたたむ",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "파일, 에이전트 또는 리소스 멘션",
25
25
  "commands.new": "/clear와 동일",
26
26
  "commands.plan": "읽기 전용 계획 모드로 전환",
27
+ "aboutAgentNative.title": "Agent Native 정보",
28
+ "aboutAgentNative.version": "버전",
29
+ "aboutAgentNative.environment": "환경",
30
+ "aboutAgentNative.build": "빌드",
31
+ "aboutAgentNative.copyDiagnostics": "진단 정보 복사",
32
+ "aboutAgentNative.unknown": "알 수 없음",
27
33
  "common.agent": "에이전트",
28
34
  "common.cancel": "취소",
29
35
  "common.collapse": "접기",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "Mencionar arquivos, agentes ou recursos",
25
25
  "commands.new": "O mesmo que /clear",
26
26
  "commands.plan": "Mudar para o planejamento somente leitura",
27
+ "aboutAgentNative.title": "Sobre o Agent Native",
28
+ "aboutAgentNative.version": "Versão",
29
+ "aboutAgentNative.environment": "Ambiente",
30
+ "aboutAgentNative.build": "Build",
31
+ "aboutAgentNative.copyDiagnostics": "Copiar diagnósticos",
32
+ "aboutAgentNative.unknown": "Desconhecida",
27
33
  "common.agent": "Agente",
28
34
  "common.cancel": "Cancelar",
29
35
  "common.collapse": "Recolher",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "提及文件、智能体或资源",
25
25
  "commands.new": "与 /clear 相同",
26
26
  "commands.plan": "切换到只读规划模式",
27
+ "aboutAgentNative.title": "关于 Agent Native",
28
+ "aboutAgentNative.version": "版本",
29
+ "aboutAgentNative.environment": "环境",
30
+ "aboutAgentNative.build": "构建",
31
+ "aboutAgentNative.copyDiagnostics": "复制诊断信息",
32
+ "aboutAgentNative.unknown": "未知",
27
33
  "common.agent": "智能体",
28
34
  "common.cancel": "取消",
29
35
  "common.collapse": "收起",
@@ -24,6 +24,12 @@ const messages = {
24
24
  "commands.mention": "提及檔案、代理或資源",
25
25
  "commands.new": "與 /clear 相同",
26
26
  "commands.plan": "切換到唯讀規劃模式",
27
+ "aboutAgentNative.title": "關於 Agent Native",
28
+ "aboutAgentNative.version": "版本",
29
+ "aboutAgentNative.environment": "環境",
30
+ "aboutAgentNative.build": "建置",
31
+ "aboutAgentNative.copyDiagnostics": "複製診斷資訊",
32
+ "aboutAgentNative.unknown": "未知",
27
33
  "common.agent": "代理",
28
34
  "common.cancel": "取消",
29
35
  "common.collapse": "收合",
@@ -26,6 +26,12 @@ export declare const englishAgentChatMessages: {
26
26
  readonly "commands.mention": "Mention files, agents, or resources";
27
27
  readonly "commands.new": "Same as /clear";
28
28
  readonly "commands.plan": "Switch to read-only planning";
29
+ readonly "aboutAgentNative.title": "About Agent Native";
30
+ readonly "aboutAgentNative.version": "Version";
31
+ readonly "aboutAgentNative.environment": "Environment";
32
+ readonly "aboutAgentNative.build": "Build";
33
+ readonly "aboutAgentNative.copyDiagnostics": "Copy diagnostics";
34
+ readonly "aboutAgentNative.unknown": "Unknown";
29
35
  readonly "common.agent": "Agent";
30
36
  readonly "common.cancel": "Cancel";
31
37
  readonly "common.collapse": "Collapse";
@@ -667,6 +667,20 @@ declare const messages: {
667
667
  organization: string;
668
668
  settingsSummary: string;
669
669
  openAutomations: string;
670
+ nextRunNeverScheduler: string;
671
+ nextRunSchedulerUnknown: string;
672
+ nextRunSchedulerUnknownNoDate: string;
673
+ scheduleUnknownTitle: string;
674
+ scheduleUnknownDetail: string;
675
+ scheduleUnavailableTitle: string;
676
+ scheduleUnavailableLocalTitle: string;
677
+ scheduleUnavailableDisabled: string;
678
+ scheduleUnavailableNoScheduler: string;
679
+ scheduleUnavailableLocal: string;
680
+ scheduleUnavailableDisabledFix: string;
681
+ scheduleUnavailableLocalFix: string;
682
+ scheduleUnavailableFixLabel: string;
683
+ scheduleUnavailableFixLabelOpen: string;
670
684
  };
671
685
  share: {
672
686
  titleWithResource: string;
@@ -673,6 +673,20 @@ const messages = {
673
673
  organization: "Organization",
674
674
  settingsSummary: "Manage scheduled and event-triggered agent tasks together from the Automations page.",
675
675
  openAutomations: "Open Automations",
676
+ nextRunNeverScheduler: "Never — no scheduler in this deploy",
677
+ nextRunSchedulerUnknown: "{{date}} — unconfirmed, the scheduler check failed",
678
+ nextRunSchedulerUnknownNoDate: "Unknown — the scheduler check failed",
679
+ scheduleUnknownTitle: "Couldn't check whether schedules run here",
680
+ scheduleUnknownDetail: "The scheduler status check failed, so the next run times below are unconfirmed. Reload to check again.",
681
+ scheduleUnavailableTitle: "Schedules won't run in this deploy",
682
+ scheduleUnavailableLocalTitle: "Schedules don't run in local development",
683
+ scheduleUnavailableDisabled: "This app was built with recurring jobs turned off, so no scheduled automation will fire. Event-triggered automations and Run now still work.",
684
+ scheduleUnavailableNoScheduler: "This hosting target has no durable scheduler, so no scheduled automation will fire. Event-triggered automations and Run now still work.",
685
+ scheduleUnavailableLocal: "Schedules stay off on a dev machine unless you opt in. Event-triggered automations and Run now still work.",
686
+ scheduleUnavailableDisabledFix: "To enable recurring jobs, set AGENT_NATIVE_DISABLE_RECURRING_JOBS=false in the build environment.",
687
+ scheduleUnavailableLocalFix: "Set AGENT_NATIVE_ENABLE_LOCAL_RECURRING_JOBS=true to run schedules on this machine.",
688
+ scheduleUnavailableFixLabel: "Show more",
689
+ scheduleUnavailableFixLabelOpen: "Show less",
676
690
  },
677
691
  share: {
678
692
  titleWithResource: 'Share "{{title}}"',
@@ -137,13 +137,13 @@ export declare function screenMemoryMcpToolDefinitions(): ({
137
137
  inputSchema: {
138
138
  type: string;
139
139
  properties: {
140
- count?: undefined;
141
140
  query?: undefined;
142
141
  minutes?: undefined;
143
142
  limit?: undefined;
144
143
  clientHint?: undefined;
145
144
  timestamp?: undefined;
146
145
  chapterId?: undefined;
146
+ count?: undefined;
147
147
  startAt?: undefined;
148
148
  endAt?: undefined;
149
149
  reason?: undefined;
@@ -159,7 +159,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
159
159
  inputSchema: {
160
160
  type: string;
161
161
  properties: {
162
- count?: undefined;
163
162
  query: {
164
163
  type: string;
165
164
  description: string;
@@ -175,6 +174,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
175
174
  clientHint?: undefined;
176
175
  timestamp?: undefined;
177
176
  chapterId?: undefined;
177
+ count?: undefined;
178
178
  startAt?: undefined;
179
179
  endAt?: undefined;
180
180
  reason?: undefined;
@@ -190,7 +190,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
190
190
  inputSchema: {
191
191
  type: string;
192
192
  properties: {
193
- count?: undefined;
194
193
  minutes: {
195
194
  type: string;
196
195
  description: string;
@@ -200,6 +199,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
200
199
  clientHint?: undefined;
201
200
  timestamp?: undefined;
202
201
  chapterId?: undefined;
202
+ count?: undefined;
203
203
  startAt?: undefined;
204
204
  endAt?: undefined;
205
205
  reason?: undefined;
@@ -216,7 +216,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
216
216
  type: string;
217
217
  required: string[];
218
218
  properties: {
219
- count?: undefined;
220
219
  query: {
221
220
  type: string;
222
221
  description: string;
@@ -235,6 +234,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
235
234
  };
236
235
  timestamp?: undefined;
237
236
  chapterId?: undefined;
237
+ count?: undefined;
238
238
  startAt?: undefined;
239
239
  endAt?: undefined;
240
240
  reason?: undefined;
@@ -250,7 +250,6 @@ export declare function screenMemoryMcpToolDefinitions(): ({
250
250
  type: string;
251
251
  required: string[];
252
252
  properties: {
253
- count?: undefined;
254
253
  query?: undefined;
255
254
  minutes?: undefined;
256
255
  limit?: undefined;
@@ -264,6 +263,7 @@ export declare function screenMemoryMcpToolDefinitions(): ({
264
263
  description: string;
265
264
  };
266
265
  chapterId?: undefined;
266
+ count?: undefined;
267
267
  startAt?: undefined;
268
268
  endAt?: undefined;
269
269
  includeMicrophone?: undefined;
@@ -314,13 +314,13 @@ export declare function screenMemoryMcpToolDefinitions(): ({
314
314
  type: string;
315
315
  required: string[];
316
316
  properties: {
317
- count?: undefined;
318
317
  query?: undefined;
319
318
  minutes?: undefined;
320
319
  limit?: undefined;
321
320
  clientHint?: undefined;
322
321
  timestamp?: undefined;
323
322
  chapterId?: undefined;
323
+ count?: undefined;
324
324
  startAt: {
325
325
  type: string;
326
326
  description: string;
@@ -349,13 +349,13 @@ export declare function screenMemoryMcpToolDefinitions(): ({
349
349
  type: string;
350
350
  required: string[];
351
351
  properties: {
352
- count?: undefined;
353
352
  query?: undefined;
354
353
  minutes?: undefined;
355
354
  limit?: undefined;
356
355
  clientHint?: undefined;
357
356
  timestamp?: undefined;
358
357
  chapterId?: undefined;
358
+ count?: undefined;
359
359
  startAt?: undefined;
360
360
  endAt?: undefined;
361
361
  reason?: undefined;
@@ -28,6 +28,6 @@ export declare function createNotificationsHandler(): import("h3").EventHandlerW
28
28
  } | {
29
29
  count?: undefined;
30
30
  updated?: undefined;
31
- error?: undefined;
32
31
  ok: boolean;
32
+ error?: undefined;
33
33
  }>>;
@@ -41,23 +41,23 @@ export declare function createObservabilityHandler(): import("h3").EventHandlerW
41
41
  thumbsUpRate: number;
42
42
  avgEvalScore: number;
43
43
  } | {
44
+ ok?: undefined;
44
45
  error?: undefined;
45
46
  summary: import("./types.js").TraceSummary;
46
47
  spans: import("./types.js").TraceSpan[];
47
48
  id?: undefined;
48
- ok?: undefined;
49
49
  } | {
50
+ ok?: undefined;
50
51
  error?: undefined;
51
52
  summary?: undefined;
52
53
  spans?: undefined;
53
54
  id: string;
54
- ok?: undefined;
55
55
  } | {
56
+ ok?: undefined;
56
57
  summary?: undefined;
57
58
  spans?: undefined;
58
59
  id?: undefined;
59
60
  error: any;
60
- ok?: undefined;
61
61
  } | {
62
62
  error?: undefined;
63
63
  summary?: undefined;
@@ -93,8 +93,8 @@ export declare function createCustomProviderRegistrationAction<TSchema extends Z
93
93
  label?: undefined;
94
94
  message?: undefined;
95
95
  } | {
96
- id?: undefined;
97
96
  count?: undefined;
97
+ id?: undefined;
98
98
  deleted?: undefined;
99
99
  providers?: undefined;
100
100
  found: boolean;
@@ -311,9 +311,8 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
311
311
  notes?: string | undefined;
312
312
  scope?: "org" | "user" | undefined;
313
313
  }, {
314
- message?: undefined;
315
- deleted?: undefined;
316
314
  id?: undefined;
315
+ provider?: undefined;
317
316
  providers: {
318
317
  id: string;
319
318
  label: string;
@@ -324,46 +323,47 @@ export declare function createProviderApiActions(runtime: Pick<ProviderApiRuntim
324
323
  updatedAt: number;
325
324
  }[];
326
325
  count: number;
327
- provider?: undefined;
328
326
  found?: undefined;
327
+ deleted?: undefined;
329
328
  registered?: undefined;
330
329
  label?: undefined;
331
- } | {
332
330
  message?: undefined;
333
- deleted?: undefined;
331
+ } | {
334
332
  id?: undefined;
335
333
  providers?: undefined;
336
334
  count?: undefined;
337
335
  found: boolean;
338
336
  provider: import("../custom-registry.js").CustomProviderConfig;
337
+ deleted?: undefined;
339
338
  registered?: undefined;
340
339
  label?: undefined;
341
- } | {
342
340
  message?: undefined;
343
- deleted?: undefined;
341
+ } | {
342
+ provider?: undefined;
344
343
  providers?: undefined;
345
344
  count?: undefined;
346
- provider?: undefined;
347
345
  found: boolean;
348
346
  id: string;
347
+ deleted?: undefined;
349
348
  registered?: undefined;
350
349
  label?: undefined;
351
- } | {
352
350
  message?: undefined;
351
+ } | {
352
+ provider?: undefined;
353
353
  providers?: undefined;
354
354
  count?: undefined;
355
- provider?: undefined;
356
355
  found?: undefined;
357
356
  deleted: boolean;
358
357
  id: string;
359
358
  registered?: undefined;
360
359
  label?: undefined;
360
+ message?: undefined;
361
361
  } | {
362
- deleted?: undefined;
362
+ provider?: undefined;
363
363
  providers?: undefined;
364
364
  count?: undefined;
365
- provider?: undefined;
366
365
  found?: undefined;
366
+ deleted?: undefined;
367
367
  registered: boolean;
368
368
  id: string;
369
369
  label: string;
@@ -51,8 +51,8 @@ export declare function handleDeleteResource(event: any): Promise<{
51
51
  error: string;
52
52
  ok?: undefined;
53
53
  } | {
54
- error?: undefined;
55
54
  ok: boolean;
55
+ error?: undefined;
56
56
  }>;
57
57
  /** POST /_agent-native/resources/upload — upload a file as a resource */
58
58
  export declare function handleUploadResource(event: any): Promise<import("./store.js").Resource | {
@@ -73,10 +73,10 @@ export declare function handleUploadResource(event: any): Promise<import("./stor
73
73
  runId: string | null;
74
74
  expiresAt: number | null;
75
75
  metadata: string | null;
76
- error?: undefined;
77
76
  url: string;
78
77
  provider: string;
79
78
  storageSetupRequired?: undefined;
79
+ error?: undefined;
80
80
  } | {
81
81
  error: string;
82
82
  storageSetupRequired: boolean;
@@ -626,6 +626,10 @@ export async function mergeCoreSharingActions(registry) {
626
626
  "list-automation-runs",
627
627
  () => import("../jobs/actions/list-automation-runs.js"),
628
628
  ],
629
+ [
630
+ "get-scheduled-trigger-status",
631
+ () => import("../jobs/actions/get-scheduled-trigger-status.js"),
632
+ ],
629
633
  [
630
634
  "list-automations",
631
635
  () => import("../triggers/actions/list-automations.js"),
@@ -1,4 +1,4 @@
1
- type RecurringJobsRuntimeEnvKey = "AGENT_NATIVE_DISABLE_RECURRING_JOBS" | "AGENT_NATIVE_ENABLE_LOCAL_RECURRING_JOBS" | "APP_URL" | "BETTER_AUTH_URL" | "CF_PAGES" | "DEPLOY_URL" | "AWS_EXECUTION_ENV" | "AWS_LAMBDA_FUNCTION_NAME" | "NETLIFY" | "NETLIFY_LOCAL" | "NITRO_PRESET" | "NODE_ENV" | "SITE_ID" | "URL" | "VERCEL" | "VITE_APP_URL" | "VITE_WORKSPACE_GATEWAY_URL" | "WORKSPACE_GATEWAY_URL";
1
+ type RecurringJobsRuntimeEnvKey = "AGENT_NATIVE_BUILD_RECURRING_JOBS" | "AGENT_NATIVE_DISABLE_RECURRING_JOBS" | "AGENT_NATIVE_ENABLE_LOCAL_RECURRING_JOBS" | "APP_URL" | "BETTER_AUTH_URL" | "CF_PAGES" | "DEPLOY_URL" | "AWS_EXECUTION_ENV" | "AWS_LAMBDA_FUNCTION_NAME" | "NETLIFY" | "NETLIFY_LOCAL" | "NITRO_PRESET" | "NODE_ENV" | "SITE_ID" | "URL" | "VERCEL" | "VITE_APP_URL" | "VITE_WORKSPACE_GATEWAY_URL" | "WORKSPACE_GATEWAY_URL";
2
2
  type RecurringJobsRuntimeEnv = Partial<Record<RecurringJobsRuntimeEnvKey, string | undefined>>;
3
3
  export declare function shouldDisableRecurringJobsRuntime(env?: RecurringJobsRuntimeEnv): boolean;
4
4
  /**
@@ -7,4 +7,45 @@ export declare function shouldDisableRecurringJobsRuntime(env?: RecurringJobsRun
7
7
  * that timer, which is exactly the failure mode the emitted sweep fixes.
8
8
  */
9
9
  export declare function isNetlifyRecurringJobsRuntime(env?: RecurringJobsRuntimeEnv): boolean;
10
+ /** What the BUILD decided about recurring jobs, as carried into the runtime. */
11
+ export type RecurringJobsBuildMarker = "enabled" | "disabled";
12
+ /**
13
+ * Env name the build embeds its recurring-jobs decision under.
14
+ *
15
+ * Netlify's scheduled function is emitted — or omitted — while the build runs,
16
+ * and a deployed serverless runtime never sees the build environment. So the
17
+ * build has to hand the decision over explicitly; nothing observable at runtime
18
+ * can reconstruct it. Consumed below as a LITERAL `process.env.<name>` member
19
+ * expression because that is the only form Vite's `define` and Nitro's
20
+ * `replace` inline at build time.
21
+ */
22
+ export declare const RECURRING_JOBS_BUILD_MARKER_ENV_VAR = "AGENT_NATIVE_BUILD_RECURRING_JOBS";
23
+ /**
24
+ * Build-side resolver: what the build environment decided. Shared with
25
+ * `isRecurringJobsDeployEnabled` in the deploy build so the gate that emits the
26
+ * scheduled function and the marker that reports it cannot disagree.
27
+ */
28
+ export declare function resolveRecurringJobsBuildMarker(env?: RecurringJobsRuntimeEnv): RecurringJobsBuildMarker;
29
+ export type ScheduledTriggerAvailability = {
30
+ available: true;
31
+ driver: "netlify-scheduled-function" | "in-process";
32
+ } | {
33
+ available: false;
34
+ reason: "disabled-by-env" | "no-platform-scheduler" | "local-development";
35
+ };
36
+ /**
37
+ * Whether ANY driver will actually fire a schedule-triggered automation in this
38
+ * deploy. Distinct from `shouldDisableRecurringJobsRuntime`, which answers the
39
+ * narrower "should THIS process run an in-process timer" and is therefore `true`
40
+ * on hosted Netlify even though schedules do fire there via the emitted
41
+ * scheduled function — reporting that value to a user would call the one
42
+ * working production runtime broken.
43
+ *
44
+ * Each branch reads the scope that actually decides its driver. The Netlify
45
+ * driver is a BUILD artifact, so it is answered by the build marker; every other
46
+ * driver is an in-process timer started from the RUNTIME env, so it is answered
47
+ * by the runtime flag. Reading runtime-only platform markers for the Netlify
48
+ * branch would report `available` off a build that emitted no trigger at all.
49
+ */
50
+ export declare function scheduledTriggerAvailability(env?: RecurringJobsRuntimeEnv): ScheduledTriggerAvailability;
10
51
  export {};