@agent-native/core 0.109.0 → 0.109.1
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.
- package/corpus/README.md +2 -2
- package/corpus/core/CHANGELOG.md +7 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/a2a/client.ts +24 -2
- package/corpus/core/src/a2a/correlation.ts +50 -0
- package/corpus/core/src/a2a/handlers.ts +140 -14
- package/corpus/core/src/a2a/index.ts +1 -0
- package/corpus/core/src/a2a/invoke.ts +10 -1
- package/corpus/core/src/a2a/task-store.ts +146 -6
- package/corpus/core/src/a2a/types.ts +16 -0
- package/corpus/core/src/action.ts +2 -0
- package/corpus/core/src/agent/production-agent.ts +23 -0
- package/corpus/core/src/client/use-run-stuck-detection.ts +27 -1
- package/corpus/core/src/db/client.ts +55 -0
- package/corpus/core/src/observability/traces.ts +172 -19
- package/corpus/core/src/scripts/call-agent.ts +53 -2
- package/corpus/core/src/server/agent-chat/action-filters-a2a.ts +72 -25
- package/corpus/core/src/server/agent-chat-plugin.ts +107 -6
- package/corpus/core/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +21 -0
- package/corpus/core/src/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
- package/corpus/core/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
- package/corpus/templates/analytics/actions/query-agent-native-analytics.ts +1 -1
- package/corpus/templates/analytics/changelog/2026-07-17-analytics-now-includes-a-default-alert-for-spikes-in-stuck-agent-chats.md +6 -0
- package/corpus/templates/analytics/docs/schemas/first-party-analytics.md +23 -14
- package/corpus/templates/analytics/docs/schemas/tracked-events.md +5 -1
- package/corpus/templates/analytics/server/jobs/analytics-alerts.ts +3 -3
- package/corpus/templates/analytics/server/lib/analytics-alerts.ts +209 -87
- package/corpus/templates/clips/actions/finalize-recording.ts +541 -62
- package/corpus/templates/clips/app/components/player/playback-comment-overlay.tsx +17 -2
- package/corpus/templates/clips/app/components/player/video-player.tsx +14 -2
- package/corpus/templates/clips/app/components/recorder/recorder-engine.ts +2 -2
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +1 -1
- package/corpus/templates/clips/app/routes/record.tsx +3 -3
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +6 -3
- package/corpus/templates/clips/changelog/2026-07-17-clips-now-retries-storage-verification-in-the-background-ins.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-fixed-broken-thumbnail-icons-appearing-over-playable-clip-em.md +6 -0
- package/corpus/templates/clips/changelog/2026-07-17-playback-comments-stay-readable-at-faster-playback-speeds.md +6 -0
- package/corpus/templates/clips/chrome-extension/src/finalize-recovery.ts +3 -0
- package/corpus/templates/clips/chrome-extension/src/offscreen.ts +3 -3
- package/corpus/templates/clips/desktop/src/app.tsx +18 -6
- package/corpus/templates/clips/desktop/src/lib/recorder.ts +111 -13
- package/corpus/templates/clips/desktop/src/lib/upload-verification.ts +16 -7
- package/corpus/templates/clips/desktop/src-tauri/src/lib.rs +2 -4
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen/live_upload.rs +32 -15
- package/corpus/templates/clips/desktop/src-tauri/src/native_screen.rs +45 -18
- package/corpus/templates/clips/server/jobs/media-verification.ts +130 -0
- package/corpus/templates/clips/server/lib/builder-media-compression.ts +15 -0
- package/corpus/templates/clips/server/lib/media-verification-state.ts +38 -0
- package/corpus/templates/clips/server/lib/player-thumbnail-url.ts +31 -0
- package/corpus/templates/clips/server/lib/post-finalize-dispatch.ts +10 -3
- package/corpus/templates/clips/server/plugins/auth.ts +5 -5
- package/corpus/templates/clips/server/plugins/calendar-jobs.ts +2 -0
- package/corpus/templates/clips/server/routes/api/_agent-native-background/post-finalize-worker.post.ts +12 -2
- package/corpus/templates/clips/server/routes/api/public-recording.get.ts +6 -1
- package/corpus/templates/clips/server/routes/api/thumbnail/[recordingId].get.ts +340 -0
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/abort.post.ts +24 -7
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/chunk.post.ts +91 -7
- package/corpus/templates/clips/server/routes/api/uploads/[recordingId]/status.get.ts +14 -0
- package/corpus/templates/clips/shared/finalize-recovery.ts +61 -2
- package/corpus/templates/clips/shared/share-meta.ts +1 -1
- package/dist/a2a/client.d.ts +11 -2
- package/dist/a2a/client.d.ts.map +1 -1
- package/dist/a2a/client.js +16 -3
- package/dist/a2a/client.js.map +1 -1
- package/dist/a2a/correlation.d.ts +10 -0
- package/dist/a2a/correlation.d.ts.map +1 -0
- package/dist/a2a/correlation.js +40 -0
- package/dist/a2a/correlation.js.map +1 -0
- package/dist/a2a/handlers.d.ts.map +1 -1
- package/dist/a2a/handlers.js +100 -15
- package/dist/a2a/handlers.js.map +1 -1
- package/dist/a2a/index.d.ts +1 -1
- package/dist/a2a/index.d.ts.map +1 -1
- package/dist/a2a/index.js.map +1 -1
- package/dist/a2a/invoke.d.ts +4 -1
- package/dist/a2a/invoke.d.ts.map +1 -1
- package/dist/a2a/invoke.js +3 -0
- package/dist/a2a/invoke.js.map +1 -1
- package/dist/a2a/task-store.d.ts +12 -1
- package/dist/a2a/task-store.d.ts.map +1 -1
- package/dist/a2a/task-store.js +96 -6
- package/dist/a2a/task-store.js.map +1 -1
- package/dist/a2a/types.d.ts +15 -0
- package/dist/a2a/types.d.ts.map +1 -1
- package/dist/a2a/types.js.map +1 -1
- package/dist/action.d.ts +2 -0
- package/dist/action.d.ts.map +1 -1
- package/dist/action.js.map +1 -1
- package/dist/agent/production-agent.d.ts +9 -0
- package/dist/agent/production-agent.d.ts.map +1 -1
- package/dist/agent/production-agent.js +14 -0
- package/dist/agent/production-agent.js.map +1 -1
- package/dist/client/use-run-stuck-detection.d.ts.map +1 -1
- package/dist/client/use-run-stuck-detection.js +25 -1
- package/dist/client/use-run-stuck-detection.js.map +1 -1
- package/dist/collab/routes.d.ts +1 -1
- package/dist/collab/struct-routes.d.ts +1 -1
- package/dist/db/client.d.ts +7 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +33 -0
- package/dist/db/client.js.map +1 -1
- package/dist/observability/routes.d.ts +5 -5
- package/dist/observability/traces.d.ts +9 -0
- package/dist/observability/traces.d.ts.map +1 -1
- package/dist/observability/traces.js +137 -19
- package/dist/observability/traces.js.map +1 -1
- package/dist/resources/handlers.d.ts +2 -2
- package/dist/scripts/call-agent.d.ts.map +1 -1
- package/dist/scripts/call-agent.js +35 -3
- package/dist/scripts/call-agent.js.map +1 -1
- package/dist/secrets/routes.d.ts +9 -9
- package/dist/server/agent-chat/action-filters-a2a.d.ts +18 -2
- package/dist/server/agent-chat/action-filters-a2a.d.ts.map +1 -1
- package/dist/server/agent-chat/action-filters-a2a.js +35 -7
- package/dist/server/agent-chat/action-filters-a2a.js.map +1 -1
- package/dist/server/agent-chat-plugin.d.ts.map +1 -1
- package/dist/server/agent-chat-plugin.js +93 -6
- package/dist/server/agent-chat-plugin.js.map +1 -1
- package/dist/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +21 -0
- package/dist/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
- package/dist/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
- package/package.json +1 -1
- package/src/templates/workspace-core/.agents/skills/a2a-protocol/SKILL.md +21 -0
- package/src/templates/workspace-core/.agents/skills/observability/SKILL.md +7 -1
- package/src/templates/workspace-core/.agents/skills/tracking/SKILL.md +1 -1
|
@@ -144,6 +144,27 @@ message delegation for planning, synthesis, multi-step work, or mutations.
|
|
|
144
144
|
Inside an agent loop, `call-agent` exposes the same path with `action` + `input`;
|
|
145
145
|
omit `message` and `taskId` in that mode.
|
|
146
146
|
|
|
147
|
+
### Retry safety and trace linkage
|
|
148
|
+
|
|
149
|
+
`call-agent` automatically derives an owner-scoped idempotency key from the
|
|
150
|
+
originating turn, target, and exact message. If a retry reaches the receiver
|
|
151
|
+
after the caller timed out, asynchronous `message/send` returns the existing
|
|
152
|
+
active or completed task instead of starting a duplicate agent run. Failed and
|
|
153
|
+
canceled tasks release the key for an intentional retry; synchronous calls are
|
|
154
|
+
never deduplicated. Lower-level clients may pass an
|
|
155
|
+
`idempotencyKey` explicitly; keep it stable for the same logical submission and
|
|
156
|
+
change it when the work changes. Dedupe is scoped to the JWT-authenticated
|
|
157
|
+
owner and verified org, and keys are limited to 128 characters.
|
|
158
|
+
|
|
159
|
+
The caller also forwards bounded correlation metadata (`callerApp`,
|
|
160
|
+
`callerThreadId`, `parentRunId`, `parentTurnId`, and direct-read
|
|
161
|
+
`invocationId`). These fields
|
|
162
|
+
are telemetry hints only. Receivers must continue to derive identity,
|
|
163
|
+
ownership, org scope, access, and approval from the verified request context.
|
|
164
|
+
Delegated model loops emit `$ai_generation` with A2A/MCP lineage, while direct
|
|
165
|
+
reads emit the content-free `$a2a_read_invoke` event; neither event includes
|
|
166
|
+
action arguments or results.
|
|
167
|
+
|
|
147
168
|
### Advanced: `A2AClient` (full control)
|
|
148
169
|
|
|
149
170
|
```ts
|
|
@@ -285,7 +285,13 @@ LLM generation:
|
|
|
285
285
|
- Agent Native Analytics shape: the same event lands in `analytics_events` with
|
|
286
286
|
mirrored query-friendly properties such as `run_id`, `thread_id`,
|
|
287
287
|
`cost_cents_x100`, `duration_ms`, `tool_calls`, `successful_tools`,
|
|
288
|
-
`failed_tools`, and `status`.
|
|
288
|
+
`failed_tools`, and `status`. A content-free `tools` array includes at most
|
|
289
|
+
50 tool names, start offsets, durations, statuses, and coarse error classes;
|
|
290
|
+
interrupted calls are finalized as errors, and failed runs still emit with
|
|
291
|
+
zero or known usage. `tools_truncated` marks longer runs while the rollup counts remain complete.
|
|
292
|
+
Delegated runs add `delegation_protocol`, `caller_app`, `a2a_task_id`, and
|
|
293
|
+
`parent_run_id` when available. `parent_turn_id` is separate because one
|
|
294
|
+
logical turn may span multiple concrete runs.
|
|
289
295
|
|
|
290
296
|
Do not build a separate LLM-observability ingestion API unless there is a clear
|
|
291
297
|
reason the tracking provider registry cannot express the use case. Keep prompt,
|
|
@@ -141,7 +141,7 @@ Other framework-level baseline events:
|
|
|
141
141
|
- `signup` from Better Auth user creation, with `auth_provider`, `auth_user_id`, and first-touch referral attribution (`referral_source`, `referrer_user`, `referral_medium`, `referral_campaign`, `utm_*`, `first_touch_path`, `landing_referrer` — see "Referral / viral attribution" above)
|
|
142
142
|
- `builder connect clicked` and `builder connect popup blocked` from browser Connect Builder CTAs
|
|
143
143
|
- `builder connect started`, `builder connect succeeded`, `builder connect failed`, `builder disconnect succeeded`, and `builder disconnect failed` from the Builder connection routes, with LLM connection context when resolvable
|
|
144
|
-
- `$ai_generation` from instrumented agent loops, with PostHog AI Observability fields such as `$ai_trace_id`, `$ai_session_id`, `$ai_model`, `$ai_provider`, `$ai_input_tokens`, `$ai_output_tokens`, `$ai_latency`, `$ai_total_cost_usd`, and mirrored Agent Native query fields such as `run_id`, `thread_id`, `cost_cents_x100`, `duration_ms`, `tool_calls`, and `status`. Prompt, tool argument, and output content is
|
|
144
|
+
- `$ai_generation` from instrumented agent loops, with PostHog AI Observability fields such as `$ai_trace_id`, `$ai_session_id`, `$ai_model`, `$ai_provider`, `$ai_input_tokens`, `$ai_output_tokens`, `$ai_latency`, `$ai_total_cost_usd`, and mirrored Agent Native query fields such as `run_id`, `thread_id`, `cost_cents_x100`, `duration_ms`, `tool_calls`, and `status`. A bounded `tools` array contains names, start offsets, durations, statuses, and coarse error classes only; interrupted tools and failed runs remain visible, and delegated runs include protocol/task/parent-run/parent-turn correlation. Prompt, tool argument, result, and output content is excluded.
|
|
145
145
|
|
|
146
146
|
For new lifecycle events, call `track()` server-side when the server is the source of truth, and `trackEvent()` client-side only for browser interactions.
|
|
147
147
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agent-native/core",
|
|
3
|
-
"version": "0.109.
|
|
3
|
+
"version": "0.109.1",
|
|
4
4
|
"description": "Framework for agent-native application development — where AI agents and UI share SQL state, actions, and context",
|
|
5
5
|
"homepage": "https://github.com/BuilderIO/agent-native#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -144,6 +144,27 @@ message delegation for planning, synthesis, multi-step work, or mutations.
|
|
|
144
144
|
Inside an agent loop, `call-agent` exposes the same path with `action` + `input`;
|
|
145
145
|
omit `message` and `taskId` in that mode.
|
|
146
146
|
|
|
147
|
+
### Retry safety and trace linkage
|
|
148
|
+
|
|
149
|
+
`call-agent` automatically derives an owner-scoped idempotency key from the
|
|
150
|
+
originating turn, target, and exact message. If a retry reaches the receiver
|
|
151
|
+
after the caller timed out, asynchronous `message/send` returns the existing
|
|
152
|
+
active or completed task instead of starting a duplicate agent run. Failed and
|
|
153
|
+
canceled tasks release the key for an intentional retry; synchronous calls are
|
|
154
|
+
never deduplicated. Lower-level clients may pass an
|
|
155
|
+
`idempotencyKey` explicitly; keep it stable for the same logical submission and
|
|
156
|
+
change it when the work changes. Dedupe is scoped to the JWT-authenticated
|
|
157
|
+
owner and verified org, and keys are limited to 128 characters.
|
|
158
|
+
|
|
159
|
+
The caller also forwards bounded correlation metadata (`callerApp`,
|
|
160
|
+
`callerThreadId`, `parentRunId`, `parentTurnId`, and direct-read
|
|
161
|
+
`invocationId`). These fields
|
|
162
|
+
are telemetry hints only. Receivers must continue to derive identity,
|
|
163
|
+
ownership, org scope, access, and approval from the verified request context.
|
|
164
|
+
Delegated model loops emit `$ai_generation` with A2A/MCP lineage, while direct
|
|
165
|
+
reads emit the content-free `$a2a_read_invoke` event; neither event includes
|
|
166
|
+
action arguments or results.
|
|
167
|
+
|
|
147
168
|
### Advanced: `A2AClient` (full control)
|
|
148
169
|
|
|
149
170
|
```ts
|
|
@@ -285,7 +285,13 @@ LLM generation:
|
|
|
285
285
|
- Agent Native Analytics shape: the same event lands in `analytics_events` with
|
|
286
286
|
mirrored query-friendly properties such as `run_id`, `thread_id`,
|
|
287
287
|
`cost_cents_x100`, `duration_ms`, `tool_calls`, `successful_tools`,
|
|
288
|
-
`failed_tools`, and `status`.
|
|
288
|
+
`failed_tools`, and `status`. A content-free `tools` array includes at most
|
|
289
|
+
50 tool names, start offsets, durations, statuses, and coarse error classes;
|
|
290
|
+
interrupted calls are finalized as errors, and failed runs still emit with
|
|
291
|
+
zero or known usage. `tools_truncated` marks longer runs while the rollup counts remain complete.
|
|
292
|
+
Delegated runs add `delegation_protocol`, `caller_app`, `a2a_task_id`, and
|
|
293
|
+
`parent_run_id` when available. `parent_turn_id` is separate because one
|
|
294
|
+
logical turn may span multiple concrete runs.
|
|
289
295
|
|
|
290
296
|
Do not build a separate LLM-observability ingestion API unless there is a clear
|
|
291
297
|
reason the tracking provider registry cannot express the use case. Keep prompt,
|
|
@@ -141,7 +141,7 @@ Other framework-level baseline events:
|
|
|
141
141
|
- `signup` from Better Auth user creation, with `auth_provider`, `auth_user_id`, and first-touch referral attribution (`referral_source`, `referrer_user`, `referral_medium`, `referral_campaign`, `utm_*`, `first_touch_path`, `landing_referrer` — see "Referral / viral attribution" above)
|
|
142
142
|
- `builder connect clicked` and `builder connect popup blocked` from browser Connect Builder CTAs
|
|
143
143
|
- `builder connect started`, `builder connect succeeded`, `builder connect failed`, `builder disconnect succeeded`, and `builder disconnect failed` from the Builder connection routes, with LLM connection context when resolvable
|
|
144
|
-
- `$ai_generation` from instrumented agent loops, with PostHog AI Observability fields such as `$ai_trace_id`, `$ai_session_id`, `$ai_model`, `$ai_provider`, `$ai_input_tokens`, `$ai_output_tokens`, `$ai_latency`, `$ai_total_cost_usd`, and mirrored Agent Native query fields such as `run_id`, `thread_id`, `cost_cents_x100`, `duration_ms`, `tool_calls`, and `status`. Prompt, tool argument, and output content is
|
|
144
|
+
- `$ai_generation` from instrumented agent loops, with PostHog AI Observability fields such as `$ai_trace_id`, `$ai_session_id`, `$ai_model`, `$ai_provider`, `$ai_input_tokens`, `$ai_output_tokens`, `$ai_latency`, `$ai_total_cost_usd`, and mirrored Agent Native query fields such as `run_id`, `thread_id`, `cost_cents_x100`, `duration_ms`, `tool_calls`, and `status`. A bounded `tools` array contains names, start offsets, durations, statuses, and coarse error classes only; interrupted tools and failed runs remain visible, and delegated runs include protocol/task/parent-run/parent-turn correlation. Prompt, tool argument, result, and output content is excluded.
|
|
145
145
|
|
|
146
146
|
For new lifecycle events, call `track()` server-side when the server is the source of truth, and `trackEvent()` client-side only for browser interactions.
|
|
147
147
|
|