@agent-native/core 0.161.17 → 0.161.20

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 (130) hide show
  1. package/corpus/README.md +1 -1
  2. package/corpus/templates/analytics/.agents/skills/adding-a-feature/SKILL.md +10 -0
  3. package/corpus/templates/analytics/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  4. package/corpus/templates/analytics/.agents/skills/secrets/SKILL.md +29 -2
  5. package/corpus/templates/analytics/AGENTS.md +1 -0
  6. package/corpus/templates/analytics/server/plugins/auth.ts +4 -0
  7. package/corpus/templates/assets/.agents/skills/adding-a-feature/SKILL.md +10 -0
  8. package/corpus/templates/assets/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  9. package/corpus/templates/assets/.agents/skills/secrets/SKILL.md +29 -2
  10. package/corpus/templates/assets/AGENTS.md +1 -0
  11. package/corpus/templates/brain/.agents/skills/adding-a-feature/SKILL.md +10 -0
  12. package/corpus/templates/brain/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  13. package/corpus/templates/brain/.agents/skills/secrets/SKILL.md +29 -2
  14. package/corpus/templates/brain/AGENTS.md +1 -0
  15. package/corpus/templates/calendar/.agents/skills/adding-a-feature/SKILL.md +10 -0
  16. package/corpus/templates/calendar/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  17. package/corpus/templates/calendar/.agents/skills/secrets/SKILL.md +29 -2
  18. package/corpus/templates/calendar/AGENTS.md +1 -0
  19. package/corpus/templates/chat/.agents/skills/adding-a-feature/SKILL.md +10 -0
  20. package/corpus/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  21. package/corpus/templates/chat/.agents/skills/secrets/SKILL.md +29 -2
  22. package/corpus/templates/chat/AGENTS.md +4 -0
  23. package/corpus/templates/clips/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  24. package/corpus/templates/clips/.agents/skills/secrets/SKILL.md +29 -2
  25. package/corpus/templates/clips/AGENTS.md +1 -0
  26. package/corpus/templates/clips/app/components/player/video-player.tsx +4 -0
  27. package/corpus/templates/clips/app/hooks/use-playback-position.ts +10 -2
  28. package/corpus/templates/clips/app/routes/embed.$shareId.tsx +1 -0
  29. package/corpus/templates/clips/app/routes/r.$recordingId.tsx +26 -25
  30. package/corpus/templates/clips/app/routes/share.$shareId.tsx +1 -0
  31. package/corpus/templates/clips/changelog/2026-08-18-clips-no-longer-opens-welcome-window-on-first-launch.md +6 -0
  32. package/corpus/templates/clips/changelog/2026-08-18-pending-recording-files-now-use-a-clips-prefixed-name.md +6 -0
  33. package/corpus/templates/clips/desktop/src/main.tsx +0 -3
  34. package/corpus/templates/clips/desktop/src/shared/config.ts +0 -1
  35. package/corpus/templates/clips/desktop/src/styles.css +0 -118
  36. package/corpus/templates/clips/desktop/src-tauri/capabilities/default.json +0 -1
  37. package/corpus/templates/clips/desktop/src-tauri/src/clips/mod.rs +0 -45
  38. package/corpus/templates/clips/desktop/src-tauri/src/config.rs +1 -4
  39. package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +0 -10
  40. package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +57 -5
  41. package/corpus/templates/content/.agents/skills/adding-a-feature/SKILL.md +10 -0
  42. package/corpus/templates/content/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  43. package/corpus/templates/content/.agents/skills/secrets/SKILL.md +29 -2
  44. package/corpus/templates/content/AGENTS.md +1 -0
  45. package/corpus/templates/crm/.agents/skills/adding-a-feature/SKILL.md +10 -0
  46. package/corpus/templates/crm/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  47. package/corpus/templates/crm/.agents/skills/secrets/SKILL.md +29 -2
  48. package/corpus/templates/crm/AGENTS.md +1 -0
  49. package/corpus/templates/design/.agents/skills/adding-a-feature/SKILL.md +10 -0
  50. package/corpus/templates/design/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  51. package/corpus/templates/design/.agents/skills/secrets/SKILL.md +29 -2
  52. package/corpus/templates/design/AGENTS.md +1 -0
  53. package/corpus/templates/design/app/i18n-data.ts +11 -0
  54. package/corpus/templates/design/app/lib/agent-chat.ts +9 -8
  55. package/corpus/templates/dispatch/.agents/skills/adding-a-feature/SKILL.md +10 -0
  56. package/corpus/templates/dispatch/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  57. package/corpus/templates/dispatch/.agents/skills/secrets/SKILL.md +29 -2
  58. package/corpus/templates/dispatch/AGENTS.md +5 -5
  59. package/corpus/templates/factory/.agents/skills/adding-a-feature/SKILL.md +10 -0
  60. package/corpus/templates/factory/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  61. package/corpus/templates/factory/.agents/skills/secrets/SKILL.md +29 -2
  62. package/corpus/templates/factory/AGENTS.md +1 -0
  63. package/corpus/templates/forms/.agents/skills/adding-a-feature/SKILL.md +10 -0
  64. package/corpus/templates/forms/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  65. package/corpus/templates/forms/.agents/skills/secrets/SKILL.md +29 -2
  66. package/corpus/templates/forms/AGENTS.md +1 -0
  67. package/corpus/templates/macros/.agents/skills/adding-a-feature/SKILL.md +10 -0
  68. package/corpus/templates/macros/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  69. package/corpus/templates/macros/.agents/skills/secrets/SKILL.md +29 -2
  70. package/corpus/templates/macros/AGENTS.md +1 -0
  71. package/corpus/templates/mail/.agents/skills/adding-a-feature/SKILL.md +10 -0
  72. package/corpus/templates/mail/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  73. package/corpus/templates/mail/.agents/skills/secrets/SKILL.md +29 -2
  74. package/corpus/templates/mail/AGENTS.md +1 -0
  75. package/corpus/templates/plan/.agents/skills/adding-a-feature/SKILL.md +10 -0
  76. package/corpus/templates/plan/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  77. package/corpus/templates/plan/.agents/skills/secrets/SKILL.md +29 -2
  78. package/corpus/templates/plan/AGENTS.md +1 -0
  79. package/corpus/templates/slides/.agents/skills/adding-a-feature/SKILL.md +10 -0
  80. package/corpus/templates/slides/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  81. package/corpus/templates/slides/.agents/skills/secrets/SKILL.md +29 -2
  82. package/corpus/templates/slides/AGENTS.md +2 -1
  83. package/corpus/templates/tasks/.agents/skills/adding-a-feature/SKILL.md +10 -0
  84. package/corpus/templates/tasks/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  85. package/corpus/templates/tasks/.agents/skills/secrets/SKILL.md +29 -2
  86. package/corpus/templates/tasks/AGENTS.md +1 -0
  87. package/dist/action.js +43 -1
  88. package/dist/client/chat/run-recovery.js +1 -1
  89. package/dist/client/route-state.js +17 -13
  90. package/dist/collab/routes.d.ts +1 -1
  91. package/dist/observability/routes.d.ts +2 -2
  92. package/dist/progress/routes.d.ts +1 -1
  93. package/dist/server/auth.d.ts +6 -0
  94. package/dist/server/auth.js +23 -5
  95. package/dist/templates/chat/.agents/skills/adding-a-feature/SKILL.md +10 -0
  96. package/dist/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  97. package/dist/templates/chat/.agents/skills/secrets/SKILL.md +29 -2
  98. package/dist/templates/chat/AGENTS.md +4 -0
  99. package/dist/templates/default/.agents/skills/adding-a-feature/SKILL.md +10 -0
  100. package/dist/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  101. package/dist/templates/default/.agents/skills/secrets/SKILL.md +29 -2
  102. package/dist/templates/default/AGENTS.md +4 -0
  103. package/dist/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  104. package/dist/templates/headless/.agents/skills/secrets/SKILL.md +29 -2
  105. package/dist/templates/headless/AGENTS.md +4 -0
  106. package/dist/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +10 -0
  107. package/dist/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  108. package/dist/templates/workspace-core/.agents/skills/secrets/SKILL.md +29 -2
  109. package/dist/templates/workspace-core/AGENTS.md +4 -0
  110. package/dist/templates/workspace-root/AGENTS.md +9 -0
  111. package/docs/content/deployment.mdx +70 -0
  112. package/docs/content/faq.mdx +1 -1
  113. package/package.json +1 -1
  114. package/src/templates/chat/.agents/skills/adding-a-feature/SKILL.md +10 -0
  115. package/src/templates/chat/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  116. package/src/templates/chat/.agents/skills/secrets/SKILL.md +29 -2
  117. package/src/templates/chat/AGENTS.md +4 -0
  118. package/src/templates/default/.agents/skills/adding-a-feature/SKILL.md +10 -0
  119. package/src/templates/default/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  120. package/src/templates/default/.agents/skills/secrets/SKILL.md +29 -2
  121. package/src/templates/default/AGENTS.md +4 -0
  122. package/src/templates/headless/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  123. package/src/templates/headless/.agents/skills/secrets/SKILL.md +29 -2
  124. package/src/templates/headless/AGENTS.md +4 -0
  125. package/src/templates/workspace-core/.agents/skills/adding-a-feature/SKILL.md +10 -0
  126. package/src/templates/workspace-core/.agents/skills/agent-native-toolkit/SKILL.md +24 -0
  127. package/src/templates/workspace-core/.agents/skills/secrets/SKILL.md +29 -2
  128. package/src/templates/workspace-core/AGENTS.md +4 -0
  129. package/src/templates/workspace-root/AGENTS.md +9 -0
  130. package/corpus/templates/clips/desktop/src/overlays/onboarding.tsx +0 -314
@@ -1,314 +0,0 @@
1
- import { IconCircleCheck, IconCircleOff } from "@tabler/icons-react";
2
- import { invoke } from "@tauri-apps/api/core";
3
- import { open as openExternal } from "@tauri-apps/plugin-shell";
4
- import { useEffect, useState } from "react";
5
-
6
- import { isMacPlatform } from "../lib/platform";
7
-
8
- type PermissionPane =
9
- | "microphone"
10
- | "speech"
11
- | "accessibility"
12
- | "input-monitoring";
13
-
14
- type PermissionStatuses = {
15
- screen: boolean;
16
- camera: boolean;
17
- microphone: boolean;
18
- speech: boolean;
19
- accessibility: boolean;
20
- inputMonitoring: boolean;
21
- };
22
-
23
- const PERMISSION_CARDS: Array<{
24
- pane: PermissionPane;
25
- key: keyof PermissionStatuses;
26
- name: string;
27
- desc: string;
28
- }> = [
29
- {
30
- pane: "microphone",
31
- key: "microphone",
32
- name: "Microphone",
33
- desc: "Needed to hear you for dictation and meeting transcripts.",
34
- },
35
- {
36
- pane: "speech",
37
- key: "speech",
38
- name: "Speech Recognition",
39
- desc: "Turns your voice into text on-device.",
40
- },
41
- {
42
- pane: "accessibility",
43
- key: "accessibility",
44
- name: "Accessibility",
45
- desc: "Lets Clips paste dictated text into other apps.",
46
- },
47
- {
48
- pane: "input-monitoring",
49
- key: "inputMonitoring",
50
- name: "Input Monitoring",
51
- desc: "Only needed for the hold-Fn dictation shortcut.",
52
- },
53
- ];
54
-
55
- // Fallback deep-links when the native `open_macos_privacy_settings` command
56
- // fails — same URLs the main app window uses.
57
- const MACOS_PRIVACY_URLS: Record<PermissionPane, string> = {
58
- microphone:
59
- "x-apple.systempreferences:com.apple.settings.PrivacySecurity.extension?Privacy_Microphone",
60
- speech:
61
- "x-apple.systempreferences:com.apple.settings.PrivacySecurity.extension?Privacy_SpeechRecognition",
62
- accessibility:
63
- "x-apple.systempreferences:com.apple.settings.PrivacySecurity.extension?Privacy_Accessibility",
64
- "input-monitoring":
65
- "x-apple.systempreferences:com.apple.settings.PrivacySecurity.extension?Privacy_ListenEvent",
66
- };
67
-
68
- function openPermissionSettings(pane: PermissionPane): void {
69
- invoke("open_macos_privacy_settings", { pane }).catch(() => {
70
- openExternal(MACOS_PRIVACY_URLS[pane]).catch((err) => {
71
- console.error("[onboarding] open privacy settings failed", err);
72
- });
73
- });
74
- }
75
-
76
- /**
77
- * First-launch overlay. Full-screen with a solid dark background — NOT
78
- * transparent like countdown/finalizing.
79
- *
80
- * Two steps:
81
- * 1. Feature selection — three cards with checkboxes (all checked by
82
- * default).
83
- * 2. Permissions (macOS, when Voice Dictation or Meetings is enabled) —
84
- * live permission-status cards polled every 2s so they flip to granted
85
- * as the user works through System Settings. Never blocks: the primary
86
- * button always continues.
87
- *
88
- * Finishing calls `set_feature_config` with the chosen features +
89
- * `onboardingComplete: true`, then opens the popover via `show_popover`.
90
- */
91
- export function Onboarding() {
92
- const [clips, setClips] = useState(true);
93
- const [meetings, setMeetings] = useState(true);
94
- const [voice, setVoice] = useState(true);
95
- const [submitting, setSubmitting] = useState(false);
96
- const [step, setStep] = useState<"features" | "permissions">("features");
97
- const [statuses, setStatuses] = useState<PermissionStatuses | null>(null);
98
-
99
- const needsPermissionsStep = (voice || meetings) && isMacPlatform();
100
-
101
- useEffect(() => {
102
- if (step !== "permissions") return;
103
- let cancelled = false;
104
- const check = () => {
105
- invoke<PermissionStatuses>("check_permission_statuses")
106
- .then((next) => {
107
- if (!cancelled) setStatuses(next);
108
- })
109
- .catch(() => {
110
- // Command unavailable — leave statuses null (cards show no status).
111
- });
112
- };
113
- check();
114
- const id = setInterval(check, 2_000);
115
- return () => {
116
- cancelled = true;
117
- clearInterval(id);
118
- };
119
- }, [step]);
120
-
121
- async function finish() {
122
- if (submitting) return;
123
- setSubmitting(true);
124
- try {
125
- await invoke("set_feature_config", {
126
- config: {
127
- clipsEnabled: clips,
128
- meetingsEnabled: meetings,
129
- voiceEnabled: voice,
130
- voiceCleanupEnabled: true,
131
- launchAtLoginEnabled: true,
132
- autoHidePopoverEnabled: false,
133
- meetingTranscriptionMode: "ask",
134
- showMeetingWidgetEnabled: true,
135
- showInScreenCapture: false,
136
- onboardingComplete: true,
137
- },
138
- });
139
- await invoke("show_popover");
140
- // Close the onboarding window itself — show_popover only opens the
141
- // popover, it doesn't know an onboarding window exists to dismiss.
142
- await invoke("hide_onboarding_window");
143
- } catch (err) {
144
- console.error(
145
- "[onboarding] set_feature_config / show_popover failed",
146
- err,
147
- );
148
- setSubmitting(false);
149
- }
150
- }
151
-
152
- function handleFeaturesContinue() {
153
- if (needsPermissionsStep) {
154
- setStep("permissions");
155
- return;
156
- }
157
- void finish();
158
- }
159
-
160
- if (step === "permissions") {
161
- const allGranted =
162
- statuses !== null && PERMISSION_CARDS.every((card) => statuses[card.key]);
163
- return (
164
- <div className="onboarding-root">
165
- <div className="onboarding-card">
166
- <h1 className="onboarding-title">Permissions</h1>
167
- <p className="onboarding-subtitle">
168
- Grant these in System Settings — Clips updates automatically
169
- </p>
170
-
171
- <div className="onboarding-features">
172
- {PERMISSION_CARDS.map((card) => {
173
- const granted = statuses ? statuses[card.key] : null;
174
- return (
175
- <div
176
- className="onboarding-feature"
177
- key={card.pane}
178
- style={{ cursor: "default" }}
179
- >
180
- <span
181
- aria-label={
182
- granted === null
183
- ? undefined
184
- : granted
185
- ? "Granted"
186
- : "Not granted"
187
- }
188
- style={{
189
- display: "inline-flex",
190
- flexShrink: 0,
191
- marginTop: 1,
192
- color: granted ? "#4ade80" : "#a3a3a3",
193
- }}
194
- >
195
- {granted ? (
196
- <IconCircleCheck size={18} stroke={2} />
197
- ) : (
198
- <IconCircleOff size={18} stroke={2} />
199
- )}
200
- </span>
201
- <div className="onboarding-feature-text">
202
- <span className="onboarding-feature-name">{card.name}</span>
203
- <span className="onboarding-feature-desc">{card.desc}</span>
204
- </div>
205
- {!granted ? (
206
- <button
207
- type="button"
208
- onClick={() => openPermissionSettings(card.pane)}
209
- style={{
210
- marginLeft: "auto",
211
- alignSelf: "center",
212
- flexShrink: 0,
213
- padding: "5px 10px",
214
- borderRadius: 8,
215
- border: "1px solid rgba(255, 255, 255, 0.15)",
216
- background: "rgba(255, 255, 255, 0.08)",
217
- color: "#f5f5f5",
218
- fontSize: 12,
219
- fontWeight: 500,
220
- cursor: "pointer",
221
- }}
222
- >
223
- Open
224
- </button>
225
- ) : null}
226
- </div>
227
- );
228
- })}
229
- </div>
230
-
231
- <button
232
- className="onboarding-cta"
233
- onClick={() => void finish()}
234
- disabled={submitting}
235
- >
236
- {submitting
237
- ? "Setting up..."
238
- : allGranted
239
- ? "Get Started"
240
- : "Continue anyway"}
241
- </button>
242
- </div>
243
- </div>
244
- );
245
- }
246
-
247
- return (
248
- <div className="onboarding-root">
249
- <div className="onboarding-card">
250
- <h1 className="onboarding-title">Welcome to Clips</h1>
251
- <p className="onboarding-subtitle">Choose your features</p>
252
-
253
- <div className="onboarding-features">
254
- <label className="onboarding-feature">
255
- <input
256
- type="checkbox"
257
- checked={clips}
258
- onChange={(e) => setClips(e.target.checked)}
259
- className="onboarding-checkbox"
260
- />
261
- <div className="onboarding-feature-text">
262
- <span className="onboarding-feature-name">Screen Recording</span>
263
- <span className="onboarding-feature-desc">
264
- Record your screen, camera, or both
265
- </span>
266
- </div>
267
- </label>
268
-
269
- <label className="onboarding-feature">
270
- <input
271
- type="checkbox"
272
- checked={meetings}
273
- onChange={(e) => setMeetings(e.target.checked)}
274
- className="onboarding-checkbox"
275
- />
276
- <div className="onboarding-feature-text">
277
- <span className="onboarding-feature-name">Meeting Notes</span>
278
- <span className="onboarding-feature-desc">
279
- AI-powered meeting transcription and note enhancement
280
- </span>
281
- </div>
282
- </label>
283
-
284
- <label className="onboarding-feature">
285
- <input
286
- type="checkbox"
287
- checked={voice}
288
- onChange={(e) => setVoice(e.target.checked)}
289
- className="onboarding-checkbox"
290
- />
291
- <div className="onboarding-feature-text">
292
- <span className="onboarding-feature-name">Voice Dictation</span>
293
- <span className="onboarding-feature-desc">
294
- Speak to type anywhere on your Mac
295
- </span>
296
- </div>
297
- </label>
298
- </div>
299
-
300
- <button
301
- className="onboarding-cta"
302
- onClick={handleFeaturesContinue}
303
- disabled={submitting}
304
- >
305
- {submitting
306
- ? "Setting up..."
307
- : needsPermissionsStep
308
- ? "Continue"
309
- : "Get Started"}
310
- </button>
311
- </div>
312
- </div>
313
- );
314
- }