@agent-native/creative-context 0.3.0 → 0.5.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 (185) hide show
  1. package/README.md +51 -9
  2. package/agent-native.package.json +4 -0
  3. package/dist/actions/index.d.ts.map +1 -1
  4. package/dist/actions/index.js +8 -0
  5. package/dist/actions/index.js.map +1 -1
  6. package/dist/actions/list-context-memberships.d.ts +11 -0
  7. package/dist/actions/list-context-memberships.d.ts.map +1 -0
  8. package/dist/actions/list-context-memberships.js +47 -0
  9. package/dist/actions/list-context-memberships.js.map +1 -0
  10. package/dist/actions/list-creative-contexts.d.ts +12 -0
  11. package/dist/actions/list-creative-contexts.d.ts.map +1 -0
  12. package/dist/actions/list-creative-contexts.js +28 -0
  13. package/dist/actions/list-creative-contexts.js.map +1 -0
  14. package/dist/actions/manage-context-membership.d.ts +64 -0
  15. package/dist/actions/manage-context-membership.d.ts.map +1 -0
  16. package/dist/actions/manage-context-membership.js +70 -0
  17. package/dist/actions/manage-context-membership.js.map +1 -0
  18. package/dist/actions/manage-context-pack.d.ts +3 -0
  19. package/dist/actions/manage-context-pack.js +6 -0
  20. package/dist/actions/manage-context-pack.js.map +1 -1
  21. package/dist/actions/manage-context-source.js +4 -11
  22. package/dist/actions/manage-context-source.js.map +1 -1
  23. package/dist/actions/manage-creative-context.d.ts +28 -0
  24. package/dist/actions/manage-creative-context.d.ts.map +1 -0
  25. package/dist/actions/manage-creative-context.js +65 -0
  26. package/dist/actions/manage-creative-context.js.map +1 -0
  27. package/dist/actions/process-context-purge.d.ts +16 -1
  28. package/dist/actions/process-context-purge.js +2 -1
  29. package/dist/actions/process-context-purge.js.map +1 -1
  30. package/dist/actions/search-creative-context.d.ts +1 -0
  31. package/dist/actions/search-creative-context.js +2 -1
  32. package/dist/actions/search-creative-context.js.map +1 -1
  33. package/dist/client/CreativeContextChip.d.ts +5 -1
  34. package/dist/client/CreativeContextChip.d.ts.map +1 -1
  35. package/dist/client/CreativeContextChip.js +36 -7
  36. package/dist/client/CreativeContextChip.js.map +1 -1
  37. package/dist/client/CreativeContextPanel.d.ts.map +1 -1
  38. package/dist/client/CreativeContextPanel.js +406 -89
  39. package/dist/client/CreativeContextPanel.js.map +1 -1
  40. package/dist/client/CreativeContextShareTab.d.ts +56 -0
  41. package/dist/client/CreativeContextShareTab.d.ts.map +1 -0
  42. package/dist/client/CreativeContextShareTab.js +213 -0
  43. package/dist/client/CreativeContextShareTab.js.map +1 -0
  44. package/dist/client/actions.d.ts +210 -0
  45. package/dist/client/actions.d.ts.map +1 -1
  46. package/dist/client/actions.js +318 -0
  47. package/dist/client/actions.js.map +1 -1
  48. package/dist/client/application-state.d.ts +2 -0
  49. package/dist/client/application-state.d.ts.map +1 -1
  50. package/dist/client/application-state.js +25 -2
  51. package/dist/client/application-state.js.map +1 -1
  52. package/dist/client/index.d.ts +4 -3
  53. package/dist/client/index.d.ts.map +1 -1
  54. package/dist/client/index.js +4 -3
  55. package/dist/client/index.js.map +1 -1
  56. package/dist/client/messages.d.ts +1 -1
  57. package/dist/client/messages.d.ts.map +1 -1
  58. package/dist/client/messages.js +77 -0
  59. package/dist/client/messages.js.map +1 -1
  60. package/dist/connectors/types.d.ts +2 -2
  61. package/dist/connectors/types.d.ts.map +1 -1
  62. package/dist/schema/index.d.ts +1592 -0
  63. package/dist/schema/index.d.ts.map +1 -1
  64. package/dist/schema/index.js +95 -0
  65. package/dist/schema/index.js.map +1 -1
  66. package/dist/schema/migrations.d.ts.map +1 -1
  67. package/dist/schema/migrations.js +80 -0
  68. package/dist/schema/migrations.js.map +1 -1
  69. package/dist/server/generation-artifact-access.js +2 -0
  70. package/dist/server/generation-artifact-access.js.map +1 -1
  71. package/dist/server/generation-context.d.ts +12 -4
  72. package/dist/server/generation-context.d.ts.map +1 -1
  73. package/dist/server/generation-context.js +129 -7
  74. package/dist/server/generation-context.js.map +1 -1
  75. package/dist/server/index.d.ts +4 -0
  76. package/dist/server/index.d.ts.map +1 -1
  77. package/dist/server/index.js +16 -0
  78. package/dist/server/index.js.map +1 -1
  79. package/dist/server/isolated-a2a.d.ts +3 -0
  80. package/dist/server/isolated-a2a.d.ts.map +1 -1
  81. package/dist/server/isolated-a2a.js +3 -1
  82. package/dist/server/isolated-a2a.js.map +1 -1
  83. package/dist/server/media.d.ts +1 -1
  84. package/dist/server/media.d.ts.map +1 -1
  85. package/dist/server/media.js +24 -9
  86. package/dist/server/media.js.map +1 -1
  87. package/dist/server/native-resource-capture.d.ts +78 -0
  88. package/dist/server/native-resource-capture.d.ts.map +1 -0
  89. package/dist/server/native-resource-capture.js +94 -0
  90. package/dist/server/native-resource-capture.js.map +1 -0
  91. package/dist/server/public-serialization.js +1 -1
  92. package/dist/server/public-serialization.js.map +1 -1
  93. package/dist/server/retrieval.d.ts +1 -0
  94. package/dist/server/retrieval.d.ts.map +1 -1
  95. package/dist/server/retrieval.js +2 -0
  96. package/dist/server/retrieval.js.map +1 -1
  97. package/dist/server/safe-native-preview.d.ts +15 -0
  98. package/dist/server/safe-native-preview.d.ts.map +1 -0
  99. package/dist/server/safe-native-preview.js +149 -0
  100. package/dist/server/safe-native-preview.js.map +1 -0
  101. package/dist/store/brand.d.ts.map +1 -1
  102. package/dist/store/brand.js +2 -16
  103. package/dist/store/brand.js.map +1 -1
  104. package/dist/store/content.d.ts +1 -0
  105. package/dist/store/content.d.ts.map +1 -1
  106. package/dist/store/content.js +84 -20
  107. package/dist/store/content.js.map +1 -1
  108. package/dist/store/contexts.d.ts +216 -0
  109. package/dist/store/contexts.d.ts.map +1 -0
  110. package/dist/store/contexts.js +1341 -0
  111. package/dist/store/contexts.js.map +1 -0
  112. package/dist/store/index.d.ts +1 -0
  113. package/dist/store/index.d.ts.map +1 -1
  114. package/dist/store/index.js +1 -0
  115. package/dist/store/index.js.map +1 -1
  116. package/dist/store/packs.d.ts +3 -0
  117. package/dist/store/packs.d.ts.map +1 -1
  118. package/dist/store/packs.js +126 -9
  119. package/dist/store/packs.js.map +1 -1
  120. package/dist/store/purge.d.ts.map +1 -1
  121. package/dist/store/purge.js +103 -6
  122. package/dist/store/purge.js.map +1 -1
  123. package/dist/store/sources.d.ts.map +1 -1
  124. package/dist/store/sources.js +2 -15
  125. package/dist/store/sources.js.map +1 -1
  126. package/dist/store/suggestions.d.ts.map +1 -1
  127. package/dist/store/suggestions.js +3 -1
  128. package/dist/store/suggestions.js.map +1 -1
  129. package/dist/types.d.ts +77 -0
  130. package/dist/types.d.ts.map +1 -1
  131. package/dist/types.js +9 -1
  132. package/dist/types.js.map +1 -1
  133. package/docs/skills/creative-context/SKILL.md +13 -5
  134. package/package.json +3 -3
  135. package/src/actions/index.ts +8 -0
  136. package/src/actions/job-public-serialization.spec.ts +21 -0
  137. package/src/actions/list-context-memberships.ts +56 -0
  138. package/src/actions/list-creative-contexts.spec.ts +38 -0
  139. package/src/actions/list-creative-contexts.ts +32 -0
  140. package/src/actions/manage-context-membership.ts +80 -0
  141. package/src/actions/manage-context-pack.ts +6 -0
  142. package/src/actions/manage-context-source.ts +8 -11
  143. package/src/actions/manage-creative-context.ts +73 -0
  144. package/src/actions/process-context-purge.ts +4 -1
  145. package/src/actions/search-creative-context.ts +2 -1
  146. package/src/client/CreativeContextChip.spec.ts +32 -0
  147. package/src/client/CreativeContextChip.tsx +83 -14
  148. package/src/client/CreativeContextPanel.tsx +1947 -885
  149. package/src/client/CreativeContextShareTab.spec.ts +70 -0
  150. package/src/client/CreativeContextShareTab.tsx +657 -0
  151. package/src/client/actions.spec.ts +177 -0
  152. package/src/client/actions.ts +566 -0
  153. package/src/client/application-state.spec.ts +5 -0
  154. package/src/client/application-state.ts +30 -2
  155. package/src/client/index.ts +33 -0
  156. package/src/client/messages.ts +95 -0
  157. package/src/connectors/types.ts +6 -8
  158. package/src/eval/library-flow.acceptance.spec.tsx +1 -0
  159. package/src/schema/index.ts +116 -0
  160. package/src/schema/migrations.ts +80 -0
  161. package/src/server/generation-artifact-access.ts +1 -0
  162. package/src/server/generation-context-a2a.spec.ts +133 -0
  163. package/src/server/generation-context.ts +153 -7
  164. package/src/server/index.spec.ts +15 -0
  165. package/src/server/index.ts +16 -0
  166. package/src/server/isolated-a2a.ts +4 -1
  167. package/src/server/media.spec.ts +30 -2
  168. package/src/server/media.ts +31 -12
  169. package/src/server/native-resource-capture.spec.ts +121 -0
  170. package/src/server/native-resource-capture.ts +198 -0
  171. package/src/server/public-serialization.spec.ts +1 -0
  172. package/src/server/public-serialization.ts +1 -1
  173. package/src/server/retrieval.ts +3 -0
  174. package/src/server/safe-native-preview.spec.ts +29 -0
  175. package/src/server/safe-native-preview.ts +200 -0
  176. package/src/store/access.integration.spec.ts +1116 -0
  177. package/src/store/brand.ts +2 -21
  178. package/src/store/content.ts +217 -17
  179. package/src/store/contexts.ts +1826 -0
  180. package/src/store/index.ts +1 -0
  181. package/src/store/packs.ts +279 -24
  182. package/src/store/purge.ts +139 -6
  183. package/src/store/sources.ts +2 -18
  184. package/src/store/suggestions.ts +3 -1
  185. package/src/types.ts +95 -0
@@ -6,6 +6,9 @@ import {
6
6
  DropdownMenuItem,
7
7
  DropdownMenuLabel,
8
8
  DropdownMenuSeparator,
9
+ DropdownMenuSub,
10
+ DropdownMenuSubContent,
11
+ DropdownMenuSubTrigger,
9
12
  DropdownMenuTrigger,
10
13
  } from "@agent-native/toolkit/ui";
11
14
  import {
@@ -16,28 +19,58 @@ import {
16
19
  } from "@tabler/icons-react";
17
20
 
18
21
  import type { ContextPackSummary } from "../types.js";
19
- import { useCreativeContextPacks } from "./actions.js";
22
+ import {
23
+ parseCreativeContexts,
24
+ useCreativeContexts,
25
+ useCreativeContextPacks,
26
+ type CreativeContextSummary,
27
+ } from "./actions.js";
20
28
  import { useCreativeContextState } from "./application-state.js";
21
29
  import type { CreativeContextApplicationState } from "./application-state.js";
22
30
 
23
31
  export interface CreativeContextChipProps {
24
32
  state: CreativeContextApplicationState;
25
33
  packs?: ContextPackSummary[];
34
+ contexts?: CreativeContextSummary[];
26
35
  className?: string;
27
36
  }
28
37
 
38
+ export type CreativeContextChipSelection =
39
+ | "off"
40
+ | "pinned-pack"
41
+ | "selected-context"
42
+ | "automatic";
43
+
44
+ export function resolveCreativeContextChipSelection(
45
+ state: CreativeContextApplicationState,
46
+ ): CreativeContextChipSelection {
47
+ if (state.contextMode === "off") return "off";
48
+ if (state.pinnedPackId) return "pinned-pack";
49
+ if (state.selectedContextId) return "selected-context";
50
+ return "automatic";
51
+ }
52
+
29
53
  export function CreativeContextChip({
30
54
  state,
31
55
  packs = [],
56
+ contexts = [],
32
57
  className,
33
58
  }: CreativeContextChipProps) {
34
59
  const t = useT();
35
60
  const packId = state.pinnedPackId ?? state.currentPackId;
36
61
  const pack = packs.find((candidate) => candidate.id === packId);
62
+ const context = contexts.find(
63
+ (candidate) => candidate.id === state.selectedContextId,
64
+ );
65
+ const selection = resolveCreativeContextChipSelection(state);
37
66
  const label =
38
- state.contextMode === "off"
67
+ selection === "off"
39
68
  ? t("creativeContext.off")
40
- : pack?.name || (packId ? packId : t("creativeContext.automatic"));
69
+ : selection === "pinned-pack"
70
+ ? pack?.name || packId
71
+ : selection === "selected-context"
72
+ ? context?.name || state.selectedContextId
73
+ : t("creativeContext.automatic");
41
74
 
42
75
  return (
43
76
  <Badge
@@ -65,12 +98,15 @@ export function CreativeContextComposerChip({
65
98
  const t = useT();
66
99
  const contextState = useCreativeContextState();
67
100
  const packsQuery = useCreativeContextPacks();
101
+ const contextsQuery = useCreativeContexts();
68
102
  const packs = packsQuery.data?.packs ?? [];
103
+ const contexts = parseCreativeContexts(contextsQuery.data);
69
104
 
70
105
  async function selectAutomatic() {
71
106
  await contextState.setState({
72
107
  ...contextState.state,
73
108
  contextMode: "auto",
109
+ selectedContextId: null,
74
110
  pinnedPackId: null,
75
111
  });
76
112
  }
@@ -78,6 +114,7 @@ export function CreativeContextComposerChip({
78
114
  async function selectOff() {
79
115
  await contextState.setState({
80
116
  contextMode: "off",
117
+ selectedContextId: null,
81
118
  currentPackId: null,
82
119
  pinnedPackId: null,
83
120
  });
@@ -87,10 +124,20 @@ export function CreativeContextComposerChip({
87
124
  await contextState.setState({
88
125
  ...contextState.state,
89
126
  contextMode: "auto",
127
+ selectedContextId: null,
90
128
  pinnedPackId: packId,
91
129
  });
92
130
  }
93
131
 
132
+ async function selectContext(contextId: string) {
133
+ await contextState.setState({
134
+ ...contextState.state,
135
+ contextMode: "auto",
136
+ selectedContextId: contextId,
137
+ pinnedPackId: null,
138
+ });
139
+ }
140
+
94
141
  return (
95
142
  <div className={className ?? "px-3 pb-1"}>
96
143
  <DropdownMenu>
@@ -102,6 +149,7 @@ export function CreativeContextComposerChip({
102
149
  <CreativeContextChip
103
150
  state={contextState.state}
104
151
  packs={packs}
152
+ contexts={contexts}
105
153
  className="max-w-full cursor-pointer bg-background/80"
106
154
  />
107
155
  </button>
@@ -112,7 +160,8 @@ export function CreativeContextComposerChip({
112
160
  </DropdownMenuLabel>
113
161
  <DropdownMenuItem onSelect={() => void selectAutomatic()}>
114
162
  {contextState.state.contextMode === "auto" &&
115
- !contextState.state.pinnedPackId ? (
163
+ !contextState.state.pinnedPackId &&
164
+ !contextState.state.selectedContextId ? (
116
165
  <IconCheck />
117
166
  ) : (
118
167
  <IconBrain />
@@ -127,27 +176,47 @@ export function CreativeContextComposerChip({
127
176
  )}
128
177
  {t("creativeContext.off")}
129
178
  </DropdownMenuItem>
130
- {packs.length ? (
179
+ {contexts.length ? (
131
180
  <>
132
181
  <DropdownMenuSeparator />
133
- <DropdownMenuLabel>
134
- {t("creativeContext.packsTitle")}
135
- </DropdownMenuLabel>
136
- {packs.slice(0, 8).map((pack) => (
182
+ <DropdownMenuLabel>Contexts</DropdownMenuLabel>
183
+ {contexts.slice(0, 8).map((context) => (
137
184
  <DropdownMenuItem
138
- key={pack.id}
139
- onSelect={() => void selectPack(pack.id)}
185
+ key={context.id}
186
+ onSelect={() => void selectContext(context.id)}
140
187
  >
141
- {contextState.state.pinnedPackId === pack.id ? (
188
+ {contextState.state.selectedContextId === context.id ? (
142
189
  <IconCheck />
143
190
  ) : (
144
- <IconPin />
191
+ <IconBrain />
145
192
  )}
146
- <span className="truncate">{pack.name}</span>
193
+ <span className="truncate">{context.name}</span>
147
194
  </DropdownMenuItem>
148
195
  ))}
149
196
  </>
150
197
  ) : null}
198
+ {packs.length ? (
199
+ <DropdownMenuSub>
200
+ <DropdownMenuSubTrigger>
201
+ Advanced: pin an exact pack
202
+ </DropdownMenuSubTrigger>
203
+ <DropdownMenuSubContent className="w-64">
204
+ {packs.slice(0, 8).map((pack) => (
205
+ <DropdownMenuItem
206
+ key={pack.id}
207
+ onSelect={() => void selectPack(pack.id)}
208
+ >
209
+ {contextState.state.pinnedPackId === pack.id ? (
210
+ <IconCheck />
211
+ ) : (
212
+ <IconPin />
213
+ )}
214
+ <span className="truncate">{pack.name}</span>
215
+ </DropdownMenuItem>
216
+ ))}
217
+ </DropdownMenuSubContent>
218
+ </DropdownMenuSub>
219
+ ) : null}
151
220
  <DropdownMenuSeparator />
152
221
  <DropdownMenuItem asChild>
153
222
  <a href={href}>