@itaila/archetype 0.3.30

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 (319) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +475 -0
  3. package/dist/audit/audit-persona.d.ts +163 -0
  4. package/dist/audit/audit-persona.d.ts.map +1 -0
  5. package/dist/audit/audit-persona.js +415 -0
  6. package/dist/audit/audit-persona.js.map +1 -0
  7. package/dist/audit/brain-reflection.d.ts +33 -0
  8. package/dist/audit/brain-reflection.d.ts.map +1 -0
  9. package/dist/audit/brain-reflection.js +148 -0
  10. package/dist/audit/brain-reflection.js.map +1 -0
  11. package/dist/audit/conversation-audit.d.ts +12 -0
  12. package/dist/audit/conversation-audit.d.ts.map +1 -0
  13. package/dist/audit/conversation-audit.js +76 -0
  14. package/dist/audit/conversation-audit.js.map +1 -0
  15. package/dist/audit/prompt-audit.d.ts +10 -0
  16. package/dist/audit/prompt-audit.d.ts.map +1 -0
  17. package/dist/audit/prompt-audit.js +153 -0
  18. package/dist/audit/prompt-audit.js.map +1 -0
  19. package/dist/audit/prompt-dump.d.ts +137 -0
  20. package/dist/audit/prompt-dump.d.ts.map +1 -0
  21. package/dist/audit/prompt-dump.js +269 -0
  22. package/dist/audit/prompt-dump.js.map +1 -0
  23. package/dist/audit/trace-integrity.d.ts +33 -0
  24. package/dist/audit/trace-integrity.d.ts.map +1 -0
  25. package/dist/audit/trace-integrity.js +109 -0
  26. package/dist/audit/trace-integrity.js.map +1 -0
  27. package/dist/audit/types.d.ts +92 -0
  28. package/dist/audit/types.d.ts.map +1 -0
  29. package/dist/audit/types.js +2 -0
  30. package/dist/audit/types.js.map +1 -0
  31. package/dist/audit/version.d.ts +14 -0
  32. package/dist/audit/version.d.ts.map +1 -0
  33. package/dist/audit/version.js +65 -0
  34. package/dist/audit/version.js.map +1 -0
  35. package/dist/brain.d.ts +7 -0
  36. package/dist/brain.d.ts.map +1 -0
  37. package/dist/brain.js +83 -0
  38. package/dist/brain.js.map +1 -0
  39. package/dist/builder/actions.d.ts +60 -0
  40. package/dist/builder/actions.d.ts.map +1 -0
  41. package/dist/builder/actions.js +257 -0
  42. package/dist/builder/actions.js.map +1 -0
  43. package/dist/builder/browser.d.ts +140 -0
  44. package/dist/builder/browser.d.ts.map +1 -0
  45. package/dist/builder/browser.js +232 -0
  46. package/dist/builder/browser.js.map +1 -0
  47. package/dist/builder/executor.d.ts +228 -0
  48. package/dist/builder/executor.d.ts.map +1 -0
  49. package/dist/builder/executor.js +1548 -0
  50. package/dist/builder/executor.js.map +1 -0
  51. package/dist/builder/index.d.ts +24 -0
  52. package/dist/builder/index.d.ts.map +1 -0
  53. package/dist/builder/index.js +24 -0
  54. package/dist/builder/index.js.map +1 -0
  55. package/dist/builder/node-test-discovery.d.ts +13 -0
  56. package/dist/builder/node-test-discovery.d.ts.map +1 -0
  57. package/dist/builder/node-test-discovery.js +45 -0
  58. package/dist/builder/node-test-discovery.js.map +1 -0
  59. package/dist/builder/sandbox.d.ts +172 -0
  60. package/dist/builder/sandbox.d.ts.map +1 -0
  61. package/dist/builder/sandbox.js +294 -0
  62. package/dist/builder/sandbox.js.map +1 -0
  63. package/dist/builder/workspace-files.d.ts +63 -0
  64. package/dist/builder/workspace-files.d.ts.map +1 -0
  65. package/dist/builder/workspace-files.js +190 -0
  66. package/dist/builder/workspace-files.js.map +1 -0
  67. package/dist/core/actions.d.ts +55 -0
  68. package/dist/core/actions.d.ts.map +1 -0
  69. package/dist/core/actions.js +311 -0
  70. package/dist/core/actions.js.map +1 -0
  71. package/dist/core/attachment-notes.d.ts +7 -0
  72. package/dist/core/attachment-notes.d.ts.map +1 -0
  73. package/dist/core/attachment-notes.js +38 -0
  74. package/dist/core/attachment-notes.js.map +1 -0
  75. package/dist/core/context.d.ts +10 -0
  76. package/dist/core/context.d.ts.map +1 -0
  77. package/dist/core/context.js +108 -0
  78. package/dist/core/context.js.map +1 -0
  79. package/dist/core/crud-prompt.d.ts +16 -0
  80. package/dist/core/crud-prompt.d.ts.map +1 -0
  81. package/dist/core/crud-prompt.js +268 -0
  82. package/dist/core/crud-prompt.js.map +1 -0
  83. package/dist/core/crud-schema.d.ts +12 -0
  84. package/dist/core/crud-schema.d.ts.map +1 -0
  85. package/dist/core/crud-schema.js +42 -0
  86. package/dist/core/crud-schema.js.map +1 -0
  87. package/dist/core/effective-config.d.ts +13 -0
  88. package/dist/core/effective-config.d.ts.map +1 -0
  89. package/dist/core/effective-config.js +33 -0
  90. package/dist/core/effective-config.js.map +1 -0
  91. package/dist/core/entities.d.ts +82 -0
  92. package/dist/core/entities.d.ts.map +1 -0
  93. package/dist/core/entities.js +116 -0
  94. package/dist/core/entities.js.map +1 -0
  95. package/dist/core/entity-helpers.d.ts +47 -0
  96. package/dist/core/entity-helpers.d.ts.map +1 -0
  97. package/dist/core/entity-helpers.js +122 -0
  98. package/dist/core/entity-helpers.js.map +1 -0
  99. package/dist/core/entity-registry.d.ts +47 -0
  100. package/dist/core/entity-registry.d.ts.map +1 -0
  101. package/dist/core/entity-registry.js +54 -0
  102. package/dist/core/entity-registry.js.map +1 -0
  103. package/dist/core/eq.d.ts +13 -0
  104. package/dist/core/eq.d.ts.map +1 -0
  105. package/dist/core/eq.js +41 -0
  106. package/dist/core/eq.js.map +1 -0
  107. package/dist/core/focus-context.d.ts +19 -0
  108. package/dist/core/focus-context.d.ts.map +1 -0
  109. package/dist/core/focus-context.js +46 -0
  110. package/dist/core/focus-context.js.map +1 -0
  111. package/dist/core/focus-mode-actions.d.ts +23 -0
  112. package/dist/core/focus-mode-actions.d.ts.map +1 -0
  113. package/dist/core/focus-mode-actions.js +74 -0
  114. package/dist/core/focus-mode-actions.js.map +1 -0
  115. package/dist/core/greeting.d.ts +10 -0
  116. package/dist/core/greeting.d.ts.map +1 -0
  117. package/dist/core/greeting.js +41 -0
  118. package/dist/core/greeting.js.map +1 -0
  119. package/dist/core/identity.d.ts +13 -0
  120. package/dist/core/identity.d.ts.map +1 -0
  121. package/dist/core/identity.js +54 -0
  122. package/dist/core/identity.js.map +1 -0
  123. package/dist/core/knowledge.d.ts +10 -0
  124. package/dist/core/knowledge.d.ts.map +1 -0
  125. package/dist/core/knowledge.js +40 -0
  126. package/dist/core/knowledge.js.map +1 -0
  127. package/dist/core/memory-actions.d.ts +38 -0
  128. package/dist/core/memory-actions.d.ts.map +1 -0
  129. package/dist/core/memory-actions.js +181 -0
  130. package/dist/core/memory-actions.js.map +1 -0
  131. package/dist/core/memory.d.ts +35 -0
  132. package/dist/core/memory.d.ts.map +1 -0
  133. package/dist/core/memory.js +168 -0
  134. package/dist/core/memory.js.map +1 -0
  135. package/dist/core/peer-actions.d.ts +15 -0
  136. package/dist/core/peer-actions.d.ts.map +1 -0
  137. package/dist/core/peer-actions.js +33 -0
  138. package/dist/core/peer-actions.js.map +1 -0
  139. package/dist/core/prompt-builder.d.ts +46 -0
  140. package/dist/core/prompt-builder.d.ts.map +1 -0
  141. package/dist/core/prompt-builder.js +543 -0
  142. package/dist/core/prompt-builder.js.map +1 -0
  143. package/dist/core/prompt-mode.d.ts +3 -0
  144. package/dist/core/prompt-mode.d.ts.map +1 -0
  145. package/dist/core/prompt-mode.js +6 -0
  146. package/dist/core/prompt-mode.js.map +1 -0
  147. package/dist/core/prompted-turn.d.ts +6 -0
  148. package/dist/core/prompted-turn.d.ts.map +1 -0
  149. package/dist/core/prompted-turn.js +48 -0
  150. package/dist/core/prompted-turn.js.map +1 -0
  151. package/dist/core/request-builder.d.ts +14 -0
  152. package/dist/core/request-builder.d.ts.map +1 -0
  153. package/dist/core/request-builder.js +64 -0
  154. package/dist/core/request-builder.js.map +1 -0
  155. package/dist/core/session-routing.d.ts +23 -0
  156. package/dist/core/session-routing.d.ts.map +1 -0
  157. package/dist/core/session-routing.js +59 -0
  158. package/dist/core/session-routing.js.map +1 -0
  159. package/dist/core/voice.d.ts +6 -0
  160. package/dist/core/voice.d.ts.map +1 -0
  161. package/dist/core/voice.js +30 -0
  162. package/dist/core/voice.js.map +1 -0
  163. package/dist/engine/chat.d.ts +45 -0
  164. package/dist/engine/chat.d.ts.map +1 -0
  165. package/dist/engine/chat.js +308 -0
  166. package/dist/engine/chat.js.map +1 -0
  167. package/dist/engine/continuity.d.ts +107 -0
  168. package/dist/engine/continuity.d.ts.map +1 -0
  169. package/dist/engine/continuity.js +320 -0
  170. package/dist/engine/continuity.js.map +1 -0
  171. package/dist/engine/crud.d.ts +62 -0
  172. package/dist/engine/crud.d.ts.map +1 -0
  173. package/dist/engine/crud.js +260 -0
  174. package/dist/engine/crud.js.map +1 -0
  175. package/dist/engine/side-effects.d.ts +93 -0
  176. package/dist/engine/side-effects.d.ts.map +1 -0
  177. package/dist/engine/side-effects.js +271 -0
  178. package/dist/engine/side-effects.js.map +1 -0
  179. package/dist/engine/staging.d.ts +29 -0
  180. package/dist/engine/staging.d.ts.map +1 -0
  181. package/dist/engine/staging.js +159 -0
  182. package/dist/engine/staging.js.map +1 -0
  183. package/dist/engine/working-set.d.ts +18 -0
  184. package/dist/engine/working-set.d.ts.map +1 -0
  185. package/dist/engine/working-set.js +246 -0
  186. package/dist/engine/working-set.js.map +1 -0
  187. package/dist/evals/action-contracts.d.ts +40 -0
  188. package/dist/evals/action-contracts.d.ts.map +1 -0
  189. package/dist/evals/action-contracts.js +208 -0
  190. package/dist/evals/action-contracts.js.map +1 -0
  191. package/dist/evals/brain-bloat.d.ts +39 -0
  192. package/dist/evals/brain-bloat.d.ts.map +1 -0
  193. package/dist/evals/brain-bloat.js +167 -0
  194. package/dist/evals/brain-bloat.js.map +1 -0
  195. package/dist/evals/brain-prescriptions.d.ts +30 -0
  196. package/dist/evals/brain-prescriptions.d.ts.map +1 -0
  197. package/dist/evals/brain-prescriptions.js +148 -0
  198. package/dist/evals/brain-prescriptions.js.map +1 -0
  199. package/dist/evals/cross-layer-duplicates.d.ts +49 -0
  200. package/dist/evals/cross-layer-duplicates.d.ts.map +1 -0
  201. package/dist/evals/cross-layer-duplicates.js +289 -0
  202. package/dist/evals/cross-layer-duplicates.js.map +1 -0
  203. package/dist/evals/entity-visibility.d.ts +28 -0
  204. package/dist/evals/entity-visibility.d.ts.map +1 -0
  205. package/dist/evals/entity-visibility.js +216 -0
  206. package/dist/evals/entity-visibility.js.map +1 -0
  207. package/dist/evals/index.d.ts +19 -0
  208. package/dist/evals/index.d.ts.map +1 -0
  209. package/dist/evals/index.js +11 -0
  210. package/dist/evals/index.js.map +1 -0
  211. package/dist/evals/judge.d.ts +22 -0
  212. package/dist/evals/judge.d.ts.map +1 -0
  213. package/dist/evals/judge.js +337 -0
  214. package/dist/evals/judge.js.map +1 -0
  215. package/dist/evals/operational-contract.d.ts +40 -0
  216. package/dist/evals/operational-contract.d.ts.map +1 -0
  217. package/dist/evals/operational-contract.js +115 -0
  218. package/dist/evals/operational-contract.js.map +1 -0
  219. package/dist/evals/prompt-content.d.ts +14 -0
  220. package/dist/evals/prompt-content.d.ts.map +1 -0
  221. package/dist/evals/prompt-content.js +104 -0
  222. package/dist/evals/prompt-content.js.map +1 -0
  223. package/dist/evals/runtime.d.ts +4 -0
  224. package/dist/evals/runtime.d.ts.map +1 -0
  225. package/dist/evals/runtime.js +197 -0
  226. package/dist/evals/runtime.js.map +1 -0
  227. package/dist/evals/sample-projects.d.ts +143 -0
  228. package/dist/evals/sample-projects.d.ts.map +1 -0
  229. package/dist/evals/sample-projects.js +644 -0
  230. package/dist/evals/sample-projects.js.map +1 -0
  231. package/dist/evals/types.d.ts +88 -0
  232. package/dist/evals/types.d.ts.map +1 -0
  233. package/dist/evals/types.js +2 -0
  234. package/dist/evals/types.js.map +1 -0
  235. package/dist/foundation/index.d.ts +158 -0
  236. package/dist/foundation/index.d.ts.map +1 -0
  237. package/dist/foundation/index.js +256 -0
  238. package/dist/foundation/index.js.map +1 -0
  239. package/dist/index.d.ts +223 -0
  240. package/dist/index.d.ts.map +1 -0
  241. package/dist/index.js +998 -0
  242. package/dist/index.js.map +1 -0
  243. package/dist/managed/autonomous-loop.d.ts +199 -0
  244. package/dist/managed/autonomous-loop.d.ts.map +1 -0
  245. package/dist/managed/autonomous-loop.js +451 -0
  246. package/dist/managed/autonomous-loop.js.map +1 -0
  247. package/dist/managed/conversation.d.ts +20 -0
  248. package/dist/managed/conversation.d.ts.map +1 -0
  249. package/dist/managed/conversation.js +40 -0
  250. package/dist/managed/conversation.js.map +1 -0
  251. package/dist/managed/knowledge.d.ts +7 -0
  252. package/dist/managed/knowledge.d.ts.map +1 -0
  253. package/dist/managed/knowledge.js +174 -0
  254. package/dist/managed/knowledge.js.map +1 -0
  255. package/dist/managed/memory-manager.d.ts +7 -0
  256. package/dist/managed/memory-manager.d.ts.map +1 -0
  257. package/dist/managed/memory-manager.js +18 -0
  258. package/dist/managed/memory-manager.js.map +1 -0
  259. package/dist/managed/memory-review.d.ts +45 -0
  260. package/dist/managed/memory-review.d.ts.map +1 -0
  261. package/dist/managed/memory-review.js +130 -0
  262. package/dist/managed/memory-review.js.map +1 -0
  263. package/dist/managed/storage.d.ts +2 -0
  264. package/dist/managed/storage.d.ts.map +1 -0
  265. package/dist/managed/storage.js +2 -0
  266. package/dist/managed/storage.js.map +1 -0
  267. package/dist/managed/work-history.d.ts +23 -0
  268. package/dist/managed/work-history.d.ts.map +1 -0
  269. package/dist/managed/work-history.js +31 -0
  270. package/dist/managed/work-history.js.map +1 -0
  271. package/dist/observability/index.d.ts +15 -0
  272. package/dist/observability/index.d.ts.map +1 -0
  273. package/dist/observability/index.js +15 -0
  274. package/dist/observability/index.js.map +1 -0
  275. package/dist/observability/render-run-markdown.d.ts +90 -0
  276. package/dist/observability/render-run-markdown.d.ts.map +1 -0
  277. package/dist/observability/render-run-markdown.js +231 -0
  278. package/dist/observability/render-run-markdown.js.map +1 -0
  279. package/dist/observability/turn-reporter.d.ts +20 -0
  280. package/dist/observability/turn-reporter.d.ts.map +1 -0
  281. package/dist/observability/turn-reporter.js +106 -0
  282. package/dist/observability/turn-reporter.js.map +1 -0
  283. package/dist/persona.d.ts +49 -0
  284. package/dist/persona.d.ts.map +1 -0
  285. package/dist/persona.js +287 -0
  286. package/dist/persona.js.map +1 -0
  287. package/dist/playbook/defaults.d.ts +25 -0
  288. package/dist/playbook/defaults.d.ts.map +1 -0
  289. package/dist/playbook/defaults.js +108 -0
  290. package/dist/playbook/defaults.js.map +1 -0
  291. package/dist/playbook/invariants.d.ts +244 -0
  292. package/dist/playbook/invariants.d.ts.map +1 -0
  293. package/dist/playbook/invariants.js +259 -0
  294. package/dist/playbook/invariants.js.map +1 -0
  295. package/dist/playbook/templates.d.ts +7 -0
  296. package/dist/playbook/templates.d.ts.map +1 -0
  297. package/dist/playbook/templates.js +437 -0
  298. package/dist/playbook/templates.js.map +1 -0
  299. package/dist/providers/gemini.d.ts +73 -0
  300. package/dist/providers/gemini.d.ts.map +1 -0
  301. package/dist/providers/gemini.js +536 -0
  302. package/dist/providers/gemini.js.map +1 -0
  303. package/dist/providers/types.d.ts +2 -0
  304. package/dist/providers/types.d.ts.map +1 -0
  305. package/dist/providers/types.js +2 -0
  306. package/dist/providers/types.js.map +1 -0
  307. package/dist/providers/zod-to-gemini.d.ts +8 -0
  308. package/dist/providers/zod-to-gemini.d.ts.map +1 -0
  309. package/dist/providers/zod-to-gemini.js +148 -0
  310. package/dist/providers/zod-to-gemini.js.map +1 -0
  311. package/dist/samples/pm-spec-agent.d.ts +22 -0
  312. package/dist/samples/pm-spec-agent.d.ts.map +1 -0
  313. package/dist/samples/pm-spec-agent.js +53 -0
  314. package/dist/samples/pm-spec-agent.js.map +1 -0
  315. package/dist/types.d.ts +920 -0
  316. package/dist/types.d.ts.map +1 -0
  317. package/dist/types.js +2 -0
  318. package/dist/types.js.map +1 -0
  319. package/package.json +68 -0
@@ -0,0 +1,268 @@
1
+ import { allowedOperations } from './entity-helpers.js';
2
+ // ─── Zod traversal helpers (shared pattern with zod-to-gemini.ts) ───────────
3
+ function resolveTypeName(def) {
4
+ if (typeof def.typeName === 'string')
5
+ return def.typeName;
6
+ if (typeof def.type === 'string') {
7
+ const map = {
8
+ string: 'ZodString', number: 'ZodNumber', boolean: 'ZodBoolean',
9
+ array: 'ZodArray', object: 'ZodObject', optional: 'ZodOptional',
10
+ nullable: 'ZodNullable', enum: 'ZodEnum', literal: 'ZodLiteral',
11
+ };
12
+ return map[def.type] ?? '';
13
+ }
14
+ return '';
15
+ }
16
+ function resolveShape(def) {
17
+ const s = def.shape;
18
+ if (typeof s === 'function')
19
+ return s();
20
+ if (s && typeof s === 'object')
21
+ return s;
22
+ return null;
23
+ }
24
+ function resolveArrayItem(def) {
25
+ if (def.type && typeof def.type === 'object' && '_def' in def.type)
26
+ return def.type;
27
+ if (def.element && typeof def.element === 'object' && '_def' in def.element)
28
+ return def.element;
29
+ return null;
30
+ }
31
+ function resolveInnerType(def) {
32
+ const inner = def.innerType;
33
+ if (inner && typeof inner === 'object' && '_def' in inner)
34
+ return inner;
35
+ return null;
36
+ }
37
+ function isOptionalLike(zodType) {
38
+ const def = zodType._def;
39
+ if (!def)
40
+ return false;
41
+ const typeName = resolveTypeName(def);
42
+ return typeName === 'ZodOptional' || typeName === 'ZodNullable';
43
+ }
44
+ function buildExampleValue(zodType) {
45
+ const def = zodType._def;
46
+ if (!def)
47
+ return '<value>';
48
+ const typeName = resolveTypeName(def);
49
+ switch (typeName) {
50
+ case 'ZodString':
51
+ return '<string>';
52
+ case 'ZodNumber':
53
+ return 1;
54
+ case 'ZodBoolean':
55
+ return true;
56
+ case 'ZodLiteral':
57
+ return def.value;
58
+ case 'ZodEnum': {
59
+ const values = def.values ?? def.entries;
60
+ const arr = Array.isArray(values) ? values : Object.keys(values);
61
+ return arr[0] ?? '<value>';
62
+ }
63
+ case 'ZodOptional':
64
+ case 'ZodNullable': {
65
+ const inner = resolveInnerType(def);
66
+ return inner ? buildExampleValue(inner) : '<value>';
67
+ }
68
+ case 'ZodArray': {
69
+ const item = resolveArrayItem(def);
70
+ return item ? [buildExampleValue(item)] : ['<value>'];
71
+ }
72
+ case 'ZodObject': {
73
+ const shape = resolveShape(def);
74
+ if (!shape)
75
+ return {};
76
+ const example = {};
77
+ for (const [key, value] of Object.entries(shape)) {
78
+ example[key] = buildExampleValue(value);
79
+ }
80
+ return example;
81
+ }
82
+ default:
83
+ return '<value>';
84
+ }
85
+ }
86
+ function buildRequiredExampleValue(zodType) {
87
+ const def = zodType._def;
88
+ if (!def)
89
+ return '<value>';
90
+ const typeName = resolveTypeName(def);
91
+ switch (typeName) {
92
+ case 'ZodObject': {
93
+ const shape = resolveShape(def);
94
+ if (!shape)
95
+ return {};
96
+ const example = {};
97
+ for (const [key, value] of Object.entries(shape)) {
98
+ if (isOptionalLike(value))
99
+ continue;
100
+ example[key] = buildRequiredExampleValue(value);
101
+ }
102
+ return example;
103
+ }
104
+ case 'ZodOptional':
105
+ case 'ZodNullable': {
106
+ const inner = resolveInnerType(def);
107
+ return inner ? buildRequiredExampleValue(inner) : '<value>';
108
+ }
109
+ default:
110
+ return buildExampleValue(zodType);
111
+ }
112
+ }
113
+ function buildExampleCrudResponseItem(entities) {
114
+ const first = Object.entries(entities)[0];
115
+ if (!first) {
116
+ return '{ "name": "crud", "params": { "operation": "create", "entity": "<name>", "id": "_temp1", "params": "{ ... }" } }';
117
+ }
118
+ const [entityName, config] = first;
119
+ const params = JSON.stringify(buildRequiredExampleValue(config.schema));
120
+ return JSON.stringify({
121
+ name: 'crud',
122
+ params: {
123
+ operation: 'create',
124
+ entity: entityName,
125
+ id: `_${entityName}1`,
126
+ params,
127
+ },
128
+ });
129
+ }
130
+ // ─── zodToDescription: comprehensive Zod → human-readable text ──────────────
131
+ /**
132
+ * Convert any Zod schema to a compact human-readable description.
133
+ * Handles the full Zod type system: primitives, enums, arrays, objects,
134
+ * optionals, nullables, literals, and .describe() annotations.
135
+ *
136
+ * Same traversal pattern as zodToGeminiSchema but outputs text for prompts.
137
+ */
138
+ export function zodToDescription(zodType) {
139
+ const def = zodType._def;
140
+ if (!def)
141
+ return 'unknown';
142
+ const typeName = resolveTypeName(def);
143
+ const description = def.description
144
+ ?? zodType.description;
145
+ let result;
146
+ switch (typeName) {
147
+ case 'ZodString':
148
+ result = 'string';
149
+ break;
150
+ case 'ZodNumber':
151
+ result = 'number';
152
+ break;
153
+ case 'ZodBoolean':
154
+ result = 'boolean';
155
+ break;
156
+ case 'ZodEnum': {
157
+ const values = def.values ?? def.entries;
158
+ const arr = Array.isArray(values) ? values : Object.keys(values);
159
+ result = arr.map(value => JSON.stringify(value)).join(' | ');
160
+ break;
161
+ }
162
+ case 'ZodLiteral':
163
+ result = JSON.stringify(def.value);
164
+ break;
165
+ case 'ZodArray': {
166
+ const item = resolveArrayItem(def);
167
+ if (item) {
168
+ const itemDesc = zodToDescription(item);
169
+ const wrapped = itemDesc.includes(' | ') && !itemDesc.startsWith('{')
170
+ ? `(${itemDesc})`
171
+ : itemDesc;
172
+ result = `${wrapped}[]`;
173
+ }
174
+ else {
175
+ result = 'array';
176
+ }
177
+ break;
178
+ }
179
+ case 'ZodObject': {
180
+ const shape = resolveShape(def);
181
+ if (!shape) {
182
+ result = 'object';
183
+ break;
184
+ }
185
+ const fields = Object.entries(shape).map(([key, val]) => {
186
+ const fieldDef = val._def;
187
+ const fieldTypeName = resolveTypeName(fieldDef);
188
+ const isOptional = fieldTypeName === 'ZodOptional';
189
+ const fieldDesc = zodToDescription(val);
190
+ const fieldDescription = fieldDef.description
191
+ ?? val.description;
192
+ const descSuffix = fieldDescription ? ` (${fieldDescription})` : '';
193
+ const optionalSuffix = isOptional && !fieldDesc.endsWith('?') ? '?' : '';
194
+ return `${key}: ${fieldDesc}${optionalSuffix}${descSuffix}`;
195
+ });
196
+ result = `{ ${fields.join(', ')} }`;
197
+ break;
198
+ }
199
+ case 'ZodOptional': {
200
+ const inner = resolveInnerType(def);
201
+ if (!inner)
202
+ return 'string?';
203
+ const innerDesc = zodToDescription(inner);
204
+ // Don't double-append ? if already present
205
+ return innerDesc.endsWith('?') ? innerDesc : `${innerDesc}?`;
206
+ }
207
+ case 'ZodNullable': {
208
+ const inner = resolveInnerType(def);
209
+ if (!inner)
210
+ return 'string | null';
211
+ return `${zodToDescription(inner)} | null`;
212
+ }
213
+ default:
214
+ result = 'string';
215
+ break;
216
+ }
217
+ return result;
218
+ }
219
+ // ─── Entity block builder ───────────────────────────────────────────────────
220
+ /**
221
+ * Render the entities block for the system prompt.
222
+ * Includes entity definitions and CRUD format instructions.
223
+ */
224
+ export function buildEntitiesBlock(entities, promptMode = 'conversation', contractStyle = 'full') {
225
+ const names = Object.keys(entities);
226
+ if (names.length === 0)
227
+ return '';
228
+ const intro = promptMode === 'operational'
229
+ ? '--- ENTITIES (available for create, update, and delete when the live turn calls for it) ---'
230
+ : '--- ENTITIES (available for create, update, and delete when the conversation calls for it) ---';
231
+ const lines = [intro];
232
+ for (const [name, config] of Object.entries(entities)) {
233
+ const schemaDesc = zodToDescription(config.schema);
234
+ // Strip outer braces for inline display: { field: type, ... } → field: type, ...
235
+ const fields = schemaDesc.startsWith('{') && schemaDesc.endsWith('}')
236
+ ? schemaDesc.slice(2, -2)
237
+ : schemaDesc;
238
+ lines.push(`- ${name}`);
239
+ lines.push(` fields: { ${fields} }`);
240
+ const ops = allowedOperations(config);
241
+ if (ops.length < 3) {
242
+ lines.push(` operations: ${ops.join(', ')} only`);
243
+ }
244
+ if (config.description) {
245
+ lines.push(` what it is: ${config.description}`);
246
+ }
247
+ }
248
+ lines.push('');
249
+ lines.push(contractStyle === 'lean' ? '--- CRUD ---' : '--- ENTITY CRUD RESPONSE CONTRACT ---');
250
+ lines.push('crud action item: { "name": "crud", "params": { "operation": "create"|"update"|"delete", "entity": "<name>", "id": "<id>", "params": "{ ... }" } }');
251
+ if (contractStyle === 'full') {
252
+ lines.push('do not use a top-level "crudActions" key — entity mutations belong inside the main "actions" array');
253
+ }
254
+ lines.push(`example response item: ${buildExampleCrudResponseItem(entities)}`);
255
+ if (contractStyle === 'lean') {
256
+ lines.push('create: required fields only; temp ids start with _');
257
+ lines.push('update: real id + changed fields only');
258
+ lines.push('delete: operation, entity, id only');
259
+ }
260
+ else {
261
+ lines.push('create: include all required fields in params and add optional fields only when the situation genuinely calls for them; generate a temp id starting with _');
262
+ lines.push('update: use a real id from context and include only changed fields');
263
+ lines.push('delete: include operation, entity, and id only');
264
+ lines.push('cross-reference: create parent temp id first, then reuse it in child params');
265
+ }
266
+ return lines.join('\n');
267
+ }
268
+ //# sourceMappingURL=crud-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-prompt.js","sourceRoot":"","sources":["../../src/core/crud-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { EntityConfig } from '../types.js';
2
+ /**
3
+ * Build the crudActions schema fragment for the Gemini response schema.
4
+ *
5
+ * The crudActions array uses a SINGLE generic schema shape (not per-entity anyOf),
6
+ * which is the whole point: eliminating the schema explosion that comes from
7
+ * N entities x 3 operations.
8
+ *
9
+ * Validation against per-entity Zod schemas happens after parsing in crud.ts.
10
+ */
11
+ export declare function buildCrudActionsSchema(entities: Record<string, EntityConfig>): Record<string, unknown>;
12
+ //# sourceMappingURL=crud-schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-schema.d.ts","sourceRoot":"","sources":["../../src/core/crud-schema.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GACrC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA+BzB"}
@@ -0,0 +1,42 @@
1
+ import { SchemaType } from '@google/generative-ai';
2
+ /**
3
+ * Build the crudActions schema fragment for the Gemini response schema.
4
+ *
5
+ * The crudActions array uses a SINGLE generic schema shape (not per-entity anyOf),
6
+ * which is the whole point: eliminating the schema explosion that comes from
7
+ * N entities x 3 operations.
8
+ *
9
+ * Validation against per-entity Zod schemas happens after parsing in crud.ts.
10
+ */
11
+ export function buildCrudActionsSchema(entities) {
12
+ const entityNames = Object.keys(entities);
13
+ return {
14
+ type: SchemaType.ARRAY,
15
+ description: 'Entity CRUD mutations. Use this array for create/update/delete on declared entities.',
16
+ items: {
17
+ type: SchemaType.OBJECT,
18
+ properties: {
19
+ operation: {
20
+ type: SchemaType.STRING,
21
+ enum: ['create', 'update', 'delete'],
22
+ description: 'The CRUD operation to perform.',
23
+ },
24
+ entity: {
25
+ type: SchemaType.STRING,
26
+ enum: entityNames,
27
+ description: 'Which entity to operate on.',
28
+ },
29
+ id: {
30
+ type: SchemaType.STRING,
31
+ description: 'Entity ID (required for update and delete).',
32
+ },
33
+ params: {
34
+ type: SchemaType.STRING,
35
+ description: `JSON object with entity fields. For create: include all required fields. For update: include only the fields to change. For delete: omit or leave empty. Field names and types are defined in the ENTITIES section of the prompt.`,
36
+ },
37
+ },
38
+ required: ['operation', 'entity'],
39
+ },
40
+ };
41
+ }
42
+ //# sourceMappingURL=crud-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crud-schema.js","sourceRoot":"","sources":["../../src/core/crud-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAGlD;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CACpC,QAAsC;IAEtC,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEzC,OAAO;QACL,IAAI,EAAE,UAAU,CAAC,KAAK;QACtB,WAAW,EAAE,sFAAsF;QACnG,KAAK,EAAE;YACL,IAAI,EAAE,UAAU,CAAC,MAAM;YACvB,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,IAAI,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC;oBACpC,WAAW,EAAE,gCAAgC;iBAC9C;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,IAAI,EAAE,WAAW;oBACjB,WAAW,EAAE,6BAA6B;iBAC3C;gBACD,EAAE,EAAE;oBACF,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,WAAW,EAAE,6CAA6C;iBAC3D;gBACD,MAAM,EAAE;oBACN,IAAI,EAAE,UAAU,CAAC,MAAM;oBACvB,WAAW,EAAE,mOAAmO;iBACjP;aACF;YACD,QAAQ,EAAE,CAAC,WAAW,EAAE,QAAQ,CAAC;SAClC;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,13 @@
1
+ import type { PersonaConfig, EntityConfig } from '../types.js';
2
+ /**
3
+ * Resolve the effective actions for a persona.
4
+ * Memory actions are no longer merged here — they flow through the entity CRUD system.
5
+ */
6
+ export declare function resolveActions(config: PersonaConfig): Record<string, import('../types.js').ActionDefinition> | undefined;
7
+ /**
8
+ * Resolve the effective entities for a persona, including internal memory entities
9
+ * when memory.enabled or craftMemory.enabled are set.
10
+ */
11
+ export declare function resolveEntities(config: PersonaConfig): Record<string, EntityConfig> | undefined;
12
+ export declare function resolveEffectiveConfig(config: PersonaConfig): PersonaConfig;
13
+ //# sourceMappingURL=effective-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-config.d.ts","sourceRoot":"","sources":["../../src/core/effective-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG9D;;;GAGG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,aAAa,EAAE,gBAAgB,CAAC,GAAG,SAAS,CAGxH;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,SAAS,CAS/F;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAQ3E"}
@@ -0,0 +1,33 @@
1
+ import { buildMemoryEntityConfig, buildCraftMemoryEntityConfig } from './memory-actions.js';
2
+ /**
3
+ * Resolve the effective actions for a persona.
4
+ * Memory actions are no longer merged here — they flow through the entity CRUD system.
5
+ */
6
+ export function resolveActions(config) {
7
+ const actions = config.actions ? { ...config.actions } : {};
8
+ return Object.keys(actions).length > 0 ? actions : undefined;
9
+ }
10
+ /**
11
+ * Resolve the effective entities for a persona, including internal memory entities
12
+ * when memory.enabled or craftMemory.enabled are set.
13
+ */
14
+ export function resolveEntities(config) {
15
+ const entities = { ...(config.entities ?? {}) };
16
+ if (config.memory?.enabled) {
17
+ entities.memory = buildMemoryEntityConfig(config.memory.categories);
18
+ }
19
+ if (config.craftMemory?.enabled) {
20
+ entities.craftMemory = buildCraftMemoryEntityConfig(config.craftMemory.categories);
21
+ }
22
+ return Object.keys(entities).length > 0 ? entities : undefined;
23
+ }
24
+ export function resolveEffectiveConfig(config) {
25
+ const actions = resolveActions(config);
26
+ const entities = resolveEntities(config);
27
+ return {
28
+ ...config,
29
+ ...(actions !== config.actions ? { actions } : {}),
30
+ ...(entities !== config.entities ? { entities } : {}),
31
+ };
32
+ }
33
+ //# sourceMappingURL=effective-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"effective-config.js","sourceRoot":"","sources":["../../src/core/effective-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAA;AAE3F;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAqB;IAClD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;IAC3D,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAA;AAC9D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAqB;IACnD,MAAM,QAAQ,GAAG,EAAE,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAA;IAC/C,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC;QAC3B,QAAQ,CAAC,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC;QAChC,QAAQ,CAAC,WAAW,GAAG,4BAA4B,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;IACpF,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAA;AAChE,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAqB;IAC1D,MAAM,OAAO,GAAG,cAAc,CAAC,MAAM,CAAC,CAAA;IACtC,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;IACxC,OAAO;QACL,GAAG,MAAM;QACT,GAAG,CAAC,OAAO,KAAK,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KACtD,CAAA;AACH,CAAC"}
@@ -0,0 +1,82 @@
1
+ import { z } from 'zod';
2
+ import type { ActionDefinition, ActionConfidence, ContextInputDefinition, ContextFormat } from '../types.js';
3
+ export interface EntityOperationConfig {
4
+ confidence: ActionConfidence;
5
+ /** Override the auto-generated action description */
6
+ description?: string;
7
+ }
8
+ export type CrudOperationName = 'create' | 'update' | 'delete';
9
+ export type CrudConfigInput = ActionConfidence | Partial<Record<CrudOperationName, ActionConfidence>>;
10
+ export interface EntityDefinitionInput {
11
+ /** Entity name in singular form (e.g., 'thread', 'meal', 'document') */
12
+ name: string;
13
+ /** Zod schema for entity fields */
14
+ schema: z.ZodObject<z.ZodRawShape>;
15
+ /** Human-readable entity name (e.g. "Thread", "Forcing Function"). Defaults to capitalize(name). */
16
+ label?: string;
17
+ /** Which field in params to use as display title (e.g. "title", "what", "cueText") */
18
+ displayField?: string;
19
+ /** How to display entities in the prompt */
20
+ contextFormat?: ContextFormat;
21
+ /** Character budget for the context block */
22
+ contextBudget?: number;
23
+ /** Context priority level */
24
+ contextPriority?: 'normal' | 'critical';
25
+ /** Which CRUD operations the AI can perform */
26
+ operations: {
27
+ create?: EntityOperationConfig;
28
+ update?: EntityOperationConfig;
29
+ delete?: EntityOperationConfig;
30
+ };
31
+ }
32
+ export interface EntityDefinitionResult {
33
+ /** Generated ActionDefinitions for the entity's CRUD operations */
34
+ actions: Record<string, ActionDefinition>;
35
+ /** Generated ContextInputDefinition for prompt injection */
36
+ contextInput: ContextInputDefinition;
37
+ /** Human-readable entity name (resolved: input.label ?? capitalize(name)) */
38
+ label: string;
39
+ /** Which field in params to use as display title */
40
+ displayField?: string;
41
+ }
42
+ /**
43
+ * Convenience helper for common CRUD entities.
44
+ * Note: most apps now use `entities` on PersonaConfig directly. This utility
45
+ * is still available for advanced integrations that need manual wiring.
46
+ *
47
+ * Examples:
48
+ * ```ts
49
+ * operations: crud('medium')
50
+ * operations: crud({ create: 'low', update: 'medium', delete: 'high' })
51
+ * operations: crud(
52
+ * { create: 'low', update: 'medium', delete: 'medium' },
53
+ * { update: 'Prefer updating existing tasks over duplicates.' },
54
+ * )
55
+ * ```
56
+ */
57
+ export declare function crud(config?: CrudConfigInput, descriptions?: Partial<Record<CrudOperationName, string>>): EntityDefinitionInput['operations'];
58
+ /**
59
+ * Define a domain entity and get auto-generated action definitions + context input.
60
+ *
61
+ * Note: most apps now declare entities via `entities` on PersonaConfig, which
62
+ * handles prompt generation and response schema automatically. This function
63
+ * is available for advanced integrations that need manual action wiring.
64
+ *
65
+ * Eliminates CRUD boilerplate: instead of manually writing Zod schemas for
66
+ * createThread, updateThread, deleteThread actions + a context input definition,
67
+ * declare the entity once and get everything generated.
68
+ *
69
+ * Example:
70
+ * ```typescript
71
+ * const threadEntity = defineEntity({
72
+ * name: 'thread',
73
+ * schema: z.object({ title: z.string(), status: z.string(), owner: z.string() }),
74
+ * contextFormat: 'list',
75
+ * operations: {
76
+ * update: { confidence: 'high' }, // CEO must approve
77
+ * },
78
+ * })
79
+ * ```
80
+ */
81
+ export declare function defineEntity(input: EntityDefinitionInput): EntityDefinitionResult;
82
+ //# sourceMappingURL=entities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.d.ts","sourceRoot":"","sources":["../../src/core/entities.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAI5G,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,qDAAqD;IACrD,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAA;AAE9D,MAAM,MAAM,eAAe,GACvB,gBAAgB,GAChB,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,CAAC,CAAA;AAExD,MAAM,WAAW,qBAAqB;IACpC,wEAAwE;IACxE,IAAI,EAAE,MAAM,CAAA;IACZ,mCAAmC;IACnC,MAAM,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAA;IAClC,oGAAoG;IACpG,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,sFAAsF;IACtF,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,4CAA4C;IAC5C,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B,6CAA6C;IAC7C,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAA;IACvC,+CAA+C;IAC/C,UAAU,EAAE;QACV,MAAM,CAAC,EAAE,qBAAqB,CAAA;QAC9B,MAAM,CAAC,EAAE,qBAAqB,CAAA;QAC9B,MAAM,CAAC,EAAE,qBAAqB,CAAA;KAC/B,CAAA;CACF;AAED,MAAM,WAAW,sBAAsB;IACrC,mEAAmE;IACnE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAA;IACzC,4DAA4D;IAC5D,YAAY,EAAE,sBAAsB,CAAA;IACpC,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAA;IACb,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,IAAI,CAClB,MAAM,GAAE,eAA0B,EAClC,YAAY,GAAE,OAAO,CAAC,MAAM,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAM,GAC5D,qBAAqB,CAAC,YAAY,CAAC,CAiBrC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CA+DjF"}
@@ -0,0 +1,116 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Convenience helper for common CRUD entities.
4
+ * Note: most apps now use `entities` on PersonaConfig directly. This utility
5
+ * is still available for advanced integrations that need manual wiring.
6
+ *
7
+ * Examples:
8
+ * ```ts
9
+ * operations: crud('medium')
10
+ * operations: crud({ create: 'low', update: 'medium', delete: 'high' })
11
+ * operations: crud(
12
+ * { create: 'low', update: 'medium', delete: 'medium' },
13
+ * { update: 'Prefer updating existing tasks over duplicates.' },
14
+ * )
15
+ * ```
16
+ */
17
+ export function crud(config = 'medium', descriptions = {}) {
18
+ const confidences = typeof config === 'string'
19
+ ? { create: config, update: config, delete: config }
20
+ : config;
21
+ const operations = {};
22
+ for (const op of ['create', 'update', 'delete']) {
23
+ const confidence = confidences[op];
24
+ if (!confidence)
25
+ continue;
26
+ operations[op] = {
27
+ confidence,
28
+ ...(descriptions[op] ? { description: descriptions[op] } : {}),
29
+ };
30
+ }
31
+ return operations;
32
+ }
33
+ /**
34
+ * Define a domain entity and get auto-generated action definitions + context input.
35
+ *
36
+ * Note: most apps now declare entities via `entities` on PersonaConfig, which
37
+ * handles prompt generation and response schema automatically. This function
38
+ * is available for advanced integrations that need manual action wiring.
39
+ *
40
+ * Eliminates CRUD boilerplate: instead of manually writing Zod schemas for
41
+ * createThread, updateThread, deleteThread actions + a context input definition,
42
+ * declare the entity once and get everything generated.
43
+ *
44
+ * Example:
45
+ * ```typescript
46
+ * const threadEntity = defineEntity({
47
+ * name: 'thread',
48
+ * schema: z.object({ title: z.string(), status: z.string(), owner: z.string() }),
49
+ * contextFormat: 'list',
50
+ * operations: {
51
+ * update: { confidence: 'high' }, // CEO must approve
52
+ * },
53
+ * })
54
+ * ```
55
+ */
56
+ export function defineEntity(input) {
57
+ const { name, schema, operations } = input;
58
+ const Name = capitalize(name);
59
+ const actions = {};
60
+ // Determine if update/delete exist (they need IDs)
61
+ const hasUpdate = !!operations.update;
62
+ const hasDelete = !!operations.delete;
63
+ const needsIds = hasUpdate || hasDelete;
64
+ // Create action
65
+ if (operations.create) {
66
+ const actionName = `create${Name}`;
67
+ actions[actionName] = {
68
+ description: operations.create.description
69
+ ?? `Create a new ${name}. Use when a new ${name} needs to be tracked.`,
70
+ schema: schema,
71
+ confidence: operations.create.confidence,
72
+ };
73
+ }
74
+ // Update action — takes id + partial fields
75
+ if (operations.update) {
76
+ const actionName = `update${Name}`;
77
+ actions[actionName] = {
78
+ description: operations.update.description
79
+ ?? `Update an existing ${name} by ID. Reference the (id:xxx) from the ${name.toUpperCase()}S context.`,
80
+ schema: z.object({
81
+ id: z.string().describe(`The ${name} ID to update`),
82
+ updates: schema.partial().describe(`Fields to update on the ${name}`),
83
+ }),
84
+ confidence: operations.update.confidence,
85
+ };
86
+ }
87
+ // Delete action
88
+ if (operations.delete) {
89
+ const actionName = `delete${Name}`;
90
+ actions[actionName] = {
91
+ description: operations.delete.description
92
+ ?? `Delete a ${name} by ID. Reference the (id:xxx) from the ${name.toUpperCase()}S context.`,
93
+ schema: z.object({
94
+ id: z.string().describe(`The ${name} ID to delete`),
95
+ }),
96
+ confidence: operations.delete.confidence,
97
+ };
98
+ }
99
+ // Context input definition
100
+ const contextInput = {
101
+ label: `${name.toUpperCase()}S`,
102
+ format: input.contextFormat ?? 'list',
103
+ ...(input.contextBudget ? { budget: input.contextBudget } : {}),
104
+ ...(input.contextPriority ? { priority: input.contextPriority } : {}),
105
+ // Entities with update/delete need IDs in the context
106
+ ...(needsIds ? { includeIds: true } : {}),
107
+ };
108
+ // Resolve entity metadata
109
+ const label = input.label ?? Name;
110
+ const displayField = input.displayField;
111
+ return { actions, contextInput, label, displayField };
112
+ }
113
+ function capitalize(s) {
114
+ return s.charAt(0).toUpperCase() + s.slice(1);
115
+ }
116
+ //# sourceMappingURL=entities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"entities.js","sourceRoot":"","sources":["../../src/core/entities.ts"],"names":[],"mappings":"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"}