@agent-native/core 0.185.0-nightly-20260923150956 → 0.185.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 (43) hide show
  1. package/corpus/templates/analytics/CHANGELOG.md +6 -0
  2. package/corpus/templates/brain/CHANGELOG.md +6 -0
  3. package/corpus/templates/calendar/CHANGELOG.md +11 -0
  4. package/corpus/templates/clips/CHANGELOG.md +37 -0
  5. package/corpus/templates/content/CHANGELOG.md +6 -0
  6. package/corpus/templates/design/CHANGELOG.md +9 -0
  7. package/corpus/templates/design/actions/get-design-system-index-status.ts +2 -5
  8. package/corpus/templates/design/actions/get-design-system.ts +6 -3
  9. package/corpus/templates/design/actions/list-design-systems.ts +53 -1
  10. package/corpus/templates/design/app/components/editor/design-start-pickers.tsx +10 -0
  11. package/corpus/templates/design/app/i18n-data.ts +10 -0
  12. package/corpus/templates/design/app/lib/design-system-data.ts +13 -10
  13. package/corpus/templates/design/app/pages/DesignSystems.tsx +11 -8
  14. package/corpus/templates/design/app/pages/Templates.tsx +6 -1
  15. package/corpus/templates/design/changelog/2026-09-22-fixed-the-design-system-picker-showing-a-still-indexing-buil.md +6 -0
  16. package/corpus/templates/design/server/lib/builder-design-system-proxy.ts +11 -30
  17. package/corpus/templates/mail/CHANGELOG.md +5 -0
  18. package/corpus/templates/slides/CHANGELOG.md +13 -0
  19. package/corpus/templates/slides/actions/apply-design-system.ts +2 -22
  20. package/corpus/templates/slides/actions/create-deck.ts +4 -54
  21. package/corpus/templates/slides/actions/get-design-system.ts +40 -3
  22. package/corpus/templates/slides/actions/list-design-systems.ts +26 -11
  23. package/corpus/templates/slides/app/components/design-system/DesignSystemSetup.tsx +16 -23
  24. package/corpus/templates/slides/app/components/editor/NewDeckReferenceStep.tsx +14 -51
  25. package/corpus/templates/slides/app/hooks/use-design-systems.ts +1 -191
  26. package/corpus/templates/slides/app/i18n/en-US.ts +0 -4
  27. package/corpus/templates/slides/app/lib/design-system-selection.ts +4 -19
  28. package/corpus/templates/slides/app/pages/Index.tsx +3 -16
  29. package/corpus/templates/slides/shared/design-system-validation.ts +16 -18
  30. package/dist/automation/index.d.ts +1 -1
  31. package/dist/collab/routes.d.ts +1 -1
  32. package/dist/collab/struct-routes.d.ts +1 -1
  33. package/dist/secrets/routes.d.ts +3 -3
  34. package/dist/server/agent-engine-api-key-route.d.ts +1 -1
  35. package/dist/server/builder-design-systems.d.ts +23 -1
  36. package/dist/server/builder-design-systems.js +58 -17
  37. package/dist/server/index.d.ts +1 -1
  38. package/dist/server/index.js +1 -1
  39. package/dist/server/realtime-token.d.ts +1 -1
  40. package/dist/server/transcribe-voice.d.ts +1 -1
  41. package/docs/content/toolkit-settings.mdx +32 -0
  42. package/package.json +4 -4
  43. package/corpus/templates/slides/actions/refresh-design-system-indexing-status.ts +0 -120
@@ -114,6 +114,38 @@ on so settings stay findable everywhere.
114
114
  - Keep settings in the canonical `/settings` pages. Agent chat should remain
115
115
  focused on conversation and never render settings inline.
116
116
 
117
+ ## ChatGPT subscription lab {#chatgpt-subscription-lab}
118
+
119
+ For apps using the shared framework settings surface, the Agent settings page
120
+ includes an experimental way to use Codex through a user's ChatGPT
121
+ subscription. It is a lab, not a general OpenAI API provider, and it exposes a
122
+ fixed set of supported Codex models.
123
+
124
+ <Steps>
125
+
126
+ ### Enable the lab
127
+
128
+ Open **Settings → Labs** and enable **ChatGPT subscription**. The connection
129
+ row stays hidden until the lab is enabled.
130
+
131
+ ### Connect the subscription
132
+
133
+ Open **Settings → Agent → Overview** and select **Connect ChatGPT** in the
134
+ **ChatGPT subscription** row. Finish sign-in in the popup. After it connects,
135
+ select **Use in chat** to make it the current agent engine.
136
+
137
+ </Steps>
138
+
139
+ <Callout tone="warning">
140
+
141
+ This is an experimental Labs feature. Your mileage may vary. Availability,
142
+ model access, limits, and behavior can change as the upstream ChatGPT/Codex
143
+ service changes. It is not intended for critical or production work. Use the
144
+ app's **Feedback** control to tell us what worked or what failed, especially
145
+ if connection or model access is inconsistent.
146
+
147
+ </Callout>
148
+
117
149
  ## What's next
118
150
 
119
151
  - [**Internationalization**](/docs/internationalization) — localize the
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/core",
3
- "version": "0.185.0-nightly-20260923150956",
3
+ "version": "0.185.0",
4
4
  "description": "The agentic application framework for building autonomous agents with intuitive UIs",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -493,9 +493,9 @@
493
493
  "yaml": "^2.9.0",
494
494
  "yjs": "^13.6.32",
495
495
  "zod": "^4.3.6",
496
- "@agent-native/recap-cli": "0.5.36",
497
- "@agent-native/agentkit": "^0.2.7-nightly-20260923150956",
498
- "@agent-native/toolkit": "^0.20.7-nightly-20260923150956"
496
+ "@agent-native/agentkit": "^0.2.7",
497
+ "@agent-native/recap-cli": "0.5.37",
498
+ "@agent-native/toolkit": "^0.20.7"
499
499
  },
500
500
  "devDependencies": {
501
501
  "@ai-sdk/anthropic": "^3.0.71",
@@ -1,120 +0,0 @@
1
- import { defineAction } from "@agent-native/core/action";
2
- import {
3
- hydrateBuilderDesignSystemReference,
4
- parseBuilderDesignSystemProxyReference,
5
- } from "@agent-native/core/server";
6
- import { assertAccess } from "@agent-native/core/sharing";
7
- import { eq } from "drizzle-orm";
8
- import { z } from "zod";
9
-
10
- import { getDb, schema } from "../server/db/index.js";
11
- import { getDesignSystemIndexingStatus } from "../shared/design-system-validation.js";
12
-
13
- // A row that's reported "indexing" for this long with no confirmed change is
14
- // very unlikely to ever resolve on its own — Builder's own hydrate call
15
- // already ran (above) and still couldn't confirm completion. Long enough
16
- // that a real, slow index isn't mistaken for stuck.
17
- const STALE_INDEXING_TIMEOUT_MS = 30 * 60_000;
18
-
19
- function isStaleIndexingRow(resource: {
20
- updatedAt?: unknown;
21
- createdAt?: unknown;
22
- }): boolean {
23
- const lastObservedAt =
24
- typeof resource.updatedAt === "string"
25
- ? resource.updatedAt
26
- : resource.createdAt;
27
- if (typeof lastObservedAt !== "string") return false;
28
- const lastObservedMs = new Date(lastObservedAt).getTime();
29
- return (
30
- Number.isFinite(lastObservedMs) &&
31
- Date.now() - lastObservedMs > STALE_INDEXING_TIMEOUT_MS
32
- );
33
- }
34
-
35
- export default defineAction({
36
- description:
37
- "Re-check a Builder-indexed design system's live status against Builder " +
38
- "and persist it if indexing finished (or failed) since it was created or " +
39
- "last synced. list-design-systems only reads the status persisted at " +
40
- "index/sync time, so a completed system would otherwise stay reported as " +
41
- "'indexing' forever. No-op (and no Builder call) for a locally authored " +
42
- "design system. Reports `stale: true` (without writing anything) when a " +
43
- "row has read as unconfirmed 'indexing' for a long time, so a poller can " +
44
- "stop checking it without ever claiming it's ready.",
45
- schema: z.object({
46
- id: z.string().min(1).describe("Local design system id"),
47
- }),
48
- run: async ({ id }) => {
49
- const access = await assertAccess("design-system", id, "viewer");
50
- const reference = parseBuilderDesignSystemProxyReference(
51
- access.resource.data,
52
- );
53
- if (!reference) {
54
- return {
55
- id,
56
- indexingStatus: "ready" as const,
57
- updated: false,
58
- stale: false,
59
- };
60
- }
61
-
62
- const hydrated = await hydrateBuilderDesignSystemReference(reference);
63
- // Only a confirmed completion or a reported terminal failure is worth
64
- // persisting — an unconfirmed in-progress read is not new information
65
- // over what was already stored at index/sync time.
66
- const resolvedBuilderStatus = hydrated.completionConfirmed
67
- ? (hydrated.builderStatus ?? "ready")
68
- : hydrated.builderStatus;
69
- const indexingStatus = getDesignSystemIndexingStatus({
70
- source: "builder",
71
- builderStatus: resolvedBuilderStatus,
72
- });
73
-
74
- if (
75
- indexingStatus === "indexing" ||
76
- resolvedBuilderStatus === reference.builderStatus
77
- ) {
78
- const stale =
79
- indexingStatus === "indexing" && isStaleIndexingRow(access.resource);
80
- return { id, indexingStatus, updated: false, stale };
81
- }
82
-
83
- // Re-read immediately before writing instead of reusing the snapshot from
84
- // before the (network-bound) hydrate call above — a concurrent
85
- // update-design-system or re-sync during that window would otherwise be
86
- // silently overwritten by patching the stale copy's builderStatus back.
87
- const db = getDb();
88
- const [currentRow] = await db
89
- .select({ data: schema.designSystems.data })
90
- .from(schema.designSystems)
91
- .where(eq(schema.designSystems.id, id))
92
- .limit(1);
93
- if (!currentRow) {
94
- return { id, indexingStatus, updated: false, stale: false };
95
- }
96
- const currentReference = parseBuilderDesignSystemProxyReference(
97
- currentRow.data,
98
- );
99
- if (
100
- !currentReference ||
101
- currentReference.builderStatus === resolvedBuilderStatus
102
- ) {
103
- // No longer a Builder-backed row, or another writer already recorded
104
- // this same status while we were hydrating.
105
- return { id, indexingStatus, updated: false, stale: false };
106
- }
107
-
108
- const parsed = JSON.parse(currentRow.data) as Record<string, unknown>;
109
- parsed.builderStatus = resolvedBuilderStatus;
110
- await db
111
- .update(schema.designSystems)
112
- .set({
113
- data: JSON.stringify(parsed),
114
- updatedAt: new Date().toISOString(),
115
- })
116
- .where(eq(schema.designSystems.id, id));
117
-
118
- return { id, indexingStatus, updated: true, stale: false };
119
- },
120
- });