@happyvertical/smrt-planner 0.57.12 → 0.57.13

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 (619) hide show
  1. package/README.md +136 -0
  2. package/agents/assistant.md +49 -0
  3. package/agents/commands.md +2 -2
  4. package/agents/cookbook.md +3 -1
  5. package/agents/shell.md +9 -7
  6. package/app/404.html +21 -21
  7. package/app/_app/immutable/assets/2.D3Ee82Nk.css +1 -0
  8. package/app/_app/immutable/assets/AppShell.Y0ysizZK.css +1 -0
  9. package/app/_app/immutable/assets/{icons.BDx21rPt.css → icons.DFiHs25V.css} +1 -1
  10. package/app/_app/immutable/chunks/3dpUaAuL.js +1 -0
  11. package/app/_app/immutable/chunks/{BxyJ_Q7v.js → B7IsOdeU.js} +1 -1
  12. package/app/_app/immutable/chunks/{8MGlmWc0.js → BErRmq61.js} +1 -1
  13. package/app/_app/immutable/chunks/BFzGVZ83.js +1 -0
  14. package/app/_app/immutable/chunks/{DU3stPaX.js → BLDa0UGj.js} +1 -1
  15. package/app/_app/immutable/chunks/BMXU0KTB.js +1 -0
  16. package/app/_app/immutable/chunks/{B88mVEob.js → B_D0zDev.js} +1 -1
  17. package/app/_app/immutable/chunks/{2dmW8nz3.js → BmSVFsOo.js} +2 -2
  18. package/app/_app/immutable/chunks/{CsaWd8kG.js → Bs5WxZDd.js} +1 -1
  19. package/app/_app/immutable/chunks/By9nPosf.js +1 -0
  20. package/app/_app/immutable/chunks/CB9iikrD.js +4 -0
  21. package/app/_app/immutable/chunks/{pEiNEXSh.js → CBxjHrPs.js} +1 -1
  22. package/app/_app/immutable/chunks/CO-Ek-HE.js +1 -0
  23. package/app/_app/immutable/chunks/{oV81RcfI.js → COQfu_Wm.js} +1 -1
  24. package/app/_app/immutable/chunks/{DDtOXC2p.js → CQ3bytDT.js} +1 -1
  25. package/app/_app/immutable/chunks/{D4791-Ex.js → CQOJdp0U.js} +1 -1
  26. package/app/_app/immutable/chunks/{CQFoqqzT.js → CT1UgNrl.js} +1 -1
  27. package/app/_app/immutable/chunks/CrMrQCWf.js +1 -0
  28. package/app/_app/immutable/chunks/{BTm4M8Ke.js → CwTLkgbW.js} +1 -1
  29. package/app/_app/immutable/chunks/{BCvXlTRf.js → CyuTEXp6.js} +1 -1
  30. package/app/_app/immutable/chunks/CzqXjCHa.js +16 -0
  31. package/app/_app/immutable/chunks/DMDdJExi.js +10 -0
  32. package/app/_app/immutable/chunks/{_CcVkMEQ.js → DPbSjNti.js} +1 -1
  33. package/app/_app/immutable/chunks/{BgtC60Dj.js → DSKWzY3b.js} +2 -2
  34. package/app/_app/immutable/chunks/{ByKA-VaR.js → DcYfN1RJ.js} +1 -1
  35. package/app/_app/immutable/chunks/KILEpkAY.js +26 -0
  36. package/app/_app/immutable/chunks/Uwmgg65i.js +1 -0
  37. package/app/_app/immutable/chunks/XcCBLn0p.js +2 -0
  38. package/app/_app/immutable/chunks/{bBI0F4nt.js → aqYPhamJ.js} +1 -1
  39. package/app/_app/immutable/chunks/{38SS-Q6Y.js → c4Y8im5f.js} +22 -22
  40. package/app/_app/immutable/chunks/{DbH3RuTE.js → gObjQOc6.js} +1 -1
  41. package/app/_app/immutable/chunks/{BQgbhyQu.js → jY83yXmZ.js} +1 -1
  42. package/app/_app/immutable/chunks/k-HWowNp.js +2 -0
  43. package/app/_app/immutable/entry/{app.C8En00Ny.js → app.BFvVYIAu.js} +2 -2
  44. package/app/_app/immutable/entry/start.CjnnBAhi.js +1 -0
  45. package/app/_app/immutable/nodes/0.BV0A9Ub7.js +7 -0
  46. package/app/_app/immutable/nodes/{1.CoV_40km.js → 1.B8lnDjjl.js} +1 -1
  47. package/app/_app/immutable/nodes/10.Dga6nV_M.js +3 -0
  48. package/app/_app/immutable/nodes/{11.Csg6XAcG.js → 11.SN8IoTqm.js} +1 -1
  49. package/app/_app/immutable/nodes/{12.CuTHLuEu.js → 12.CmhheIVU.js} +1 -1
  50. package/app/_app/immutable/nodes/{13.CNdfx5uO.js → 13.Eh2aPgMP.js} +1 -1
  51. package/app/_app/immutable/nodes/14.ReLktgLz.js +1 -0
  52. package/app/_app/immutable/nodes/2.Dc32ZcWd.js +22 -0
  53. package/app/_app/immutable/nodes/{3.DC8-sgUI.js → 3.CuIErDvM.js} +1 -1
  54. package/app/_app/immutable/nodes/{4.DcX0DIX9.js → 4.62S4SMa5.js} +1 -1
  55. package/app/_app/immutable/nodes/{5.Opk77twi.js → 5.DZx2uQQp.js} +1 -1
  56. package/app/_app/immutable/nodes/{6.Uk9tXC7t.js → 6.Dzh2j8Eu.js} +1 -1
  57. package/app/_app/immutable/nodes/7.BndE5mEj.js +1 -0
  58. package/app/_app/immutable/nodes/{8.CacSxuCP.js → 8.B79dJpLW.js} +1 -1
  59. package/app/_app/immutable/nodes/{9.z7vXbrbH.js → 9.Di1DpDGF.js} +1 -1
  60. package/app/_app/version.json +1 -1
  61. package/app/advanced-styles/index.html +24 -24
  62. package/app/ai/index.html +28 -28
  63. package/app/blueprint/index.html +22 -22
  64. package/app/cookbook/index.html +22 -22
  65. package/app/index.html +38 -40
  66. package/app/m/ads/AdDeliveryTier/index.html +27 -27
  67. package/app/m/ads/AdEvent/index.html +27 -27
  68. package/app/m/ads/AdFormat/index.html +27 -27
  69. package/app/m/ads/AdGroup/index.html +27 -27
  70. package/app/m/ads/AdVariation/index.html +27 -27
  71. package/app/m/analytics/AnalyticsDataStream/index.html +27 -27
  72. package/app/m/analytics/AnalyticsEvent/index.html +27 -27
  73. package/app/m/analytics/AnalyticsProperty/index.html +27 -27
  74. package/app/m/analytics/AnalyticsReport/index.html +27 -27
  75. package/app/m/approvals/ApprovalEvent/index.html +27 -27
  76. package/app/m/approvals/ApprovalPolicy/index.html +27 -27
  77. package/app/m/approvals/ApprovalRequest/index.html +27 -27
  78. package/app/m/assets/Asset/attachments/index.html +28 -28
  79. package/app/m/assets/Asset/index.html +27 -27
  80. package/app/m/assets/AssetAssociation/index.html +27 -27
  81. package/app/m/assets/AssetMetafield/index.html +27 -27
  82. package/app/m/assets/AssetStatus/index.html +27 -27
  83. package/app/m/assets/AssetType/index.html +27 -27
  84. package/app/m/assets/Folder/index.html +27 -27
  85. package/app/m/chat/AgentSession/index.html +27 -27
  86. package/app/m/chat/ChatMessage/index.html +27 -27
  87. package/app/m/chat/ChatParticipant/index.html +27 -27
  88. package/app/m/chat/ChatReaction/index.html +27 -27
  89. package/app/m/chat/ChatRoom/index.html +27 -27
  90. package/app/m/chat/ChatThread/index.html +27 -27
  91. package/app/m/chat/VoiceGatewayTurn/index.html +27 -27
  92. package/app/m/chat/VoiceSession/index.html +27 -27
  93. package/app/m/commerce/Agreement/index.html +27 -27
  94. package/app/m/commerce/Cart/index.html +27 -27
  95. package/app/m/commerce/Contract/index.html +27 -27
  96. package/app/m/commerce/ContractLineItem/index.html +27 -27
  97. package/app/m/commerce/Customer/index.html +27 -27
  98. package/app/m/commerce/DocumentTax/index.html +27 -27
  99. package/app/m/commerce/Estimate/index.html +27 -27
  100. package/app/m/commerce/Fulfillment/index.html +27 -27
  101. package/app/m/commerce/FulfillmentLineItem/index.html +27 -27
  102. package/app/m/commerce/HistoricalCustomerFunds/index.html +27 -27
  103. package/app/m/commerce/HistoricalCustomerFundsAllocation/index.html +27 -27
  104. package/app/m/commerce/HistoricalSalesLine/index.html +27 -27
  105. package/app/m/commerce/Invoice/index.html +27 -27
  106. package/app/m/commerce/InvoiceLineItem/index.html +27 -27
  107. package/app/m/commerce/Lease/index.html +27 -27
  108. package/app/m/commerce/LicenseSale/index.html +27 -27
  109. package/app/m/commerce/Order/index.html +27 -27
  110. package/app/m/commerce/Payment/index.html +27 -27
  111. package/app/m/commerce/PaymentAllocation/index.html +27 -27
  112. package/app/m/commerce/PaymentInstrument/index.html +27 -27
  113. package/app/m/commerce/PaymentIntent/index.html +27 -27
  114. package/app/m/commerce/Payout/index.html +27 -27
  115. package/app/m/commerce/ProductionOrder/index.html +27 -27
  116. package/app/m/commerce/PurchaseContract/index.html +27 -27
  117. package/app/m/commerce/PurchaseOrder/index.html +27 -27
  118. package/app/m/commerce/SalesContract/index.html +27 -27
  119. package/app/m/commerce/SupplierQuote/index.html +27 -27
  120. package/app/m/commerce/TaxCode/index.html +27 -27
  121. package/app/m/commerce/TaxComponent/index.html +27 -27
  122. package/app/m/commerce/TaxSettings/index.html +27 -27
  123. package/app/m/commerce/TaxSummaryReport/index.html +27 -27
  124. package/app/m/commerce/TenantPaymentAccount/index.html +27 -27
  125. package/app/m/commerce/Vendor/index.html +27 -27
  126. package/app/m/commerce/WholesaleOrder/index.html +27 -27
  127. package/app/m/content/Content/index.html +27 -27
  128. package/app/m/content/ContentContribution/index.html +27 -27
  129. package/app/m/content/ContentContributionAttachment/index.html +27 -27
  130. package/app/m/content/ContentContributionRevision/index.html +27 -27
  131. package/app/m/content/ContentContributionType/index.html +27 -27
  132. package/app/m/content/ContentContributor/index.html +27 -27
  133. package/app/m/content/ContentCorrection/index.html +27 -27
  134. package/app/m/content/ContentFeedSource/index.html +27 -27
  135. package/app/m/content/ContentGovernanceAssignment/index.html +27 -27
  136. package/app/m/content/ContentGovernancePolicy/index.html +27 -27
  137. package/app/m/content/ContentGovernanceProfile/index.html +27 -27
  138. package/app/m/content/ContentReference/index.html +27 -27
  139. package/app/m/content/ContentReview/index.html +27 -27
  140. package/app/m/content/ContentVersion/index.html +27 -27
  141. package/app/m/events/Event/index.html +27 -27
  142. package/app/m/events/EventParticipant/index.html +27 -27
  143. package/app/m/events/EventSeries/index.html +27 -27
  144. package/app/m/events/EventType/index.html +27 -27
  145. package/app/m/expenses/Expense/index.html +27 -27
  146. package/app/m/facts/Fact/index.html +27 -27
  147. package/app/m/facts/FactContent/index.html +27 -27
  148. package/app/m/facts/FactEvidence/index.html +27 -27
  149. package/app/m/facts/FactSource/index.html +27 -27
  150. package/app/m/facts/FactSubject/index.html +27 -27
  151. package/app/m/facts/FactTag/index.html +27 -27
  152. package/app/m/fields/FieldPolicy/index.html +27 -27
  153. package/app/m/fields/FieldPolicySuggestion/index.html +27 -27
  154. package/app/m/fields/FieldUsageCounter/index.html +27 -27
  155. package/app/m/images/Image/index.html +27 -27
  156. package/app/m/inventory/InventoryLocation/index.html +27 -27
  157. package/app/m/inventory/StockLevel/index.html +27 -27
  158. package/app/m/inventory/StockMovement/index.html +27 -27
  159. package/app/m/ledgers/Account/index.html +27 -27
  160. package/app/m/ledgers/Journal/index.html +27 -27
  161. package/app/m/ledgers/JournalEntry/index.html +27 -27
  162. package/app/m/ledgers/Ledger/index.html +27 -27
  163. package/app/m/manufacturing/Assembly/index.html +27 -27
  164. package/app/m/manufacturing/BillOfMaterials/index.html +27 -27
  165. package/app/m/manufacturing/BomLine/index.html +27 -27
  166. package/app/m/manufacturing/Operation/index.html +27 -27
  167. package/app/m/manufacturing/ProductionRun/index.html +27 -27
  168. package/app/m/manufacturing/ProductionRunCompletion/index.html +27 -27
  169. package/app/m/manufacturing/RoutingStep/index.html +27 -27
  170. package/app/m/marketing/Campaign/index.html +27 -27
  171. package/app/m/marketing/CampaignChannel/index.html +27 -27
  172. package/app/m/marketing/CampaignMetricSnapshot/index.html +27 -27
  173. package/app/m/messages/Account/index.html +27 -27
  174. package/app/m/messages/Attachment/index.html +27 -27
  175. package/app/m/messages/Blacklist/index.html +27 -27
  176. package/app/m/messages/Email/failed-sends/index.html +28 -28
  177. package/app/m/messages/Email/index.html +27 -27
  178. package/app/m/messages/Email/mailbox/index.html +28 -28
  179. package/app/m/messages/EmailAccount/index.html +27 -27
  180. package/app/m/messages/EmailAttachment/index.html +27 -27
  181. package/app/m/messages/EmailFolder/index.html +27 -27
  182. package/app/m/messages/Message/index.html +27 -27
  183. package/app/m/messages/MessagingEndpoint/index.html +27 -27
  184. package/app/m/messages/PersonaMessageRoute/index.html +27 -27
  185. package/app/m/messages/SlackAccount/index.html +27 -27
  186. package/app/m/messages/SlackMessage/index.html +27 -27
  187. package/app/m/messages/TelegramAccount/index.html +27 -27
  188. package/app/m/messages/Tweet/index.html +27 -27
  189. package/app/m/messages/TwitterAccount/index.html +27 -27
  190. package/app/m/messages/Whitelist/index.html +27 -27
  191. package/app/m/messages/ZulipAccount/index.html +27 -27
  192. package/app/m/places/Place/index.html +27 -27
  193. package/app/m/places/PlaceType/index.html +27 -27
  194. package/app/m/products/Category/index.html +27 -27
  195. package/app/m/products/Material/index.html +27 -27
  196. package/app/m/products/Product/index.html +27 -27
  197. package/app/m/products/Product/ingredients/index.html +28 -28
  198. package/app/m/products/ProductVariant/index.html +27 -27
  199. package/app/m/products/Sku/index.html +27 -27
  200. package/app/m/profiles/ApiKey/index.html +27 -27
  201. package/app/m/profiles/Bot/index.html +27 -27
  202. package/app/m/profiles/MagicLinkToken/index.html +27 -27
  203. package/app/m/profiles/NostrIdentity/index.html +27 -27
  204. package/app/m/profiles/OidcIdentity/index.html +27 -27
  205. package/app/m/profiles/Organization/index.html +27 -27
  206. package/app/m/profiles/Person/index.html +27 -27
  207. package/app/m/profiles/Profile/index.html +27 -27
  208. package/app/m/profiles/ProfileMetadata/index.html +27 -27
  209. package/app/m/profiles/ProfileMetafield/index.html +27 -27
  210. package/app/m/profiles/ProfileRelationship/index.html +27 -27
  211. package/app/m/profiles/ProfileRelationshipTerm/index.html +27 -27
  212. package/app/m/profiles/ProfileRelationshipType/index.html +27 -27
  213. package/app/m/profiles/ProfileType/index.html +27 -27
  214. package/app/m/projects/Comment/index.html +27 -27
  215. package/app/m/projects/Issue/index.html +27 -27
  216. package/app/m/projects/Label/index.html +27 -27
  217. package/app/m/projects/Project/index.html +27 -27
  218. package/app/m/projects/ProjectIntegration/index.html +27 -27
  219. package/app/m/projects/PullRequest/index.html +27 -27
  220. package/app/m/projects/Repository/index.html +27 -27
  221. package/app/m/properties/Property/index.html +27 -27
  222. package/app/m/properties/Zone/index.html +27 -27
  223. package/app/m/reports/RuntimeReport/index.html +27 -27
  224. package/app/m/reports/SmrtPrincipalReportRefreshTask/index.html +27 -27
  225. package/app/m/reports/SmrtReportLock/index.html +27 -27
  226. package/app/m/reports/SmrtReportRefreshTask/index.html +27 -27
  227. package/app/m/reports/SmrtReportRun/index.html +27 -27
  228. package/app/m/reports/SmrtReportSchedule/index.html +27 -27
  229. package/app/m/reports/SmrtReportWatermark/index.html +27 -27
  230. package/app/m/sales/Agreement/index.html +27 -27
  231. package/app/m/sales/AttributionException/index.html +27 -27
  232. package/app/m/sales/AttributionPolicy/index.html +27 -27
  233. package/app/m/sales/Commission/index.html +27 -27
  234. package/app/m/sales/CommissionAdjustment/index.html +27 -27
  235. package/app/m/sales/CommissionPayout/index.html +27 -27
  236. package/app/m/sales/CommissionPlan/index.html +27 -27
  237. package/app/m/sales/Earner/index.html +27 -27
  238. package/app/m/sales/EarnerSourceAttribution/index.html +27 -27
  239. package/app/m/sales/EarningEvent/index.html +27 -27
  240. package/app/m/sales/ExecutedAgreement/index.html +27 -27
  241. package/app/m/sales/Lead/index.html +27 -27
  242. package/app/m/sales/Opportunity/index.html +27 -27
  243. package/app/m/sales/OpportunityConversion/index.html +27 -27
  244. package/app/m/sales/PipelineDefinition/index.html +27 -27
  245. package/app/m/sales/PipelineStage/index.html +27 -27
  246. package/app/m/sales/Referral/index.html +27 -27
  247. package/app/m/sales/ReferralAgreement/index.html +27 -27
  248. package/app/m/sales/ReferralLink/index.html +27 -27
  249. package/app/m/sales/ReferralProgram/index.html +27 -27
  250. package/app/m/sales/ReferralTermSnapshot/index.html +27 -27
  251. package/app/m/sales/ReferralTouch/index.html +27 -27
  252. package/app/m/sales/Referrer/index.html +27 -27
  253. package/app/m/sales/SalesActivity/index.html +27 -27
  254. package/app/m/sales/SalesRepresentative/index.html +27 -27
  255. package/app/m/sites/Site/index.html +27 -27
  256. package/app/m/sites/SiteAgentBinding/index.html +27 -27
  257. package/app/m/social/OAuthState/index.html +27 -27
  258. package/app/m/social/SocialAccount/index.html +27 -27
  259. package/app/m/social/SocialPost/index.html +27 -27
  260. package/app/m/social/SocialPostAnalyticsSnapshot/index.html +27 -27
  261. package/app/m/subscriptions/BillingAdjustment/index.html +27 -27
  262. package/app/m/subscriptions/ClientCharge/index.html +27 -27
  263. package/app/m/subscriptions/CreditGrant/index.html +27 -27
  264. package/app/m/subscriptions/PricingRule/index.html +27 -27
  265. package/app/m/subscriptions/RetailCharge/index.html +27 -27
  266. package/app/m/subscriptions/SpendingPolicy/index.html +27 -27
  267. package/app/m/subscriptions/SubscriptionPlan/index.html +27 -27
  268. package/app/m/subscriptions/SubscriptionPlanVersion/index.html +27 -27
  269. package/app/m/subscriptions/TenantSubscription/index.html +27 -27
  270. package/app/m/subscriptions/TenantUsageMetric/index.html +27 -27
  271. package/app/m/support/ServiceTimeEntry/index.html +27 -27
  272. package/app/m/support/SupportAiRun/index.html +27 -27
  273. package/app/m/support/SupportAvailability/index.html +27 -27
  274. package/app/m/support/SupportCase/index.html +27 -27
  275. package/app/m/support/SupportCaseEvent/index.html +27 -27
  276. package/app/m/support/SupportChannelBinding/index.html +27 -27
  277. package/app/m/support/SupportCharge/index.html +27 -27
  278. package/app/m/support/SupportCompensation/index.html +27 -27
  279. package/app/m/support/SupportCompensationPlan/index.html +27 -27
  280. package/app/m/support/SupportEscalation/index.html +27 -27
  281. package/app/m/support/SupportInteraction/index.html +27 -27
  282. package/app/m/support/SupportPlan/index.html +27 -27
  283. package/app/m/support/SupportPolicy/index.html +27 -27
  284. package/app/m/support/SupportQualification/index.html +27 -27
  285. package/app/m/support/SupportServiceTarget/index.html +27 -27
  286. package/app/m/support/SupportSpecialist/index.html +27 -27
  287. package/app/m/support/SupportWorkLink/index.html +27 -27
  288. package/app/m/tags/Tag/index.html +27 -27
  289. package/app/m/tags/TagAlias/index.html +27 -27
  290. package/app/m/timesheets/AttendanceBreak/index.html +27 -27
  291. package/app/m/timesheets/AttendancePunch/index.html +27 -27
  292. package/app/m/timesheets/AttendanceSegment/index.html +27 -27
  293. package/app/m/timesheets/ServiceChargeSnapshot/index.html +27 -27
  294. package/app/m/timesheets/ServiceCompensationSnapshot/index.html +27 -27
  295. package/app/m/timesheets/ServiceTimeEntry/index.html +27 -27
  296. package/app/m/users/Group/index.html +27 -27
  297. package/app/m/users/GroupMember/index.html +27 -27
  298. package/app/m/users/GroupRole/index.html +27 -27
  299. package/app/m/users/Membership/index.html +27 -27
  300. package/app/m/users/MembershipOverride/index.html +27 -27
  301. package/app/m/users/Permission/index.html +27 -27
  302. package/app/m/users/Role/index.html +27 -27
  303. package/app/m/users/RolePermission/index.html +27 -27
  304. package/app/m/users/Session/index.html +27 -27
  305. package/app/m/users/Tenant/index.html +27 -27
  306. package/app/m/users/TenantIntegration/index.html +27 -27
  307. package/app/m/users/TenantPermissionOverride/index.html +27 -27
  308. package/app/m/users/User/index.html +27 -27
  309. package/app/m/video/Character/index.html +27 -27
  310. package/app/m/video/CharacterAsset/index.html +27 -27
  311. package/app/m/video/CompositeJob/index.html +27 -27
  312. package/app/m/video/Performer/index.html +27 -27
  313. package/app/m/video/PerformerAsset/index.html +27 -27
  314. package/app/m/video/Scene/index.html +27 -27
  315. package/app/m/video/SceneAsset/index.html +27 -27
  316. package/app/m/video/VideoComposition/index.html +27 -27
  317. package/app/m/video/VideoCompositionAsset/index.html +27 -27
  318. package/app/m/video/VideoSequence/index.html +27 -27
  319. package/app/m/video/VideoSequenceAsset/index.html +27 -27
  320. package/app/m/video/VideoShot/index.html +27 -27
  321. package/app/m/video/VideoShotAsset/index.html +27 -27
  322. package/app/m/video/VideoShotCharacter/index.html +27 -27
  323. package/app/m/video/VideoWorkflow/index.html +27 -27
  324. package/app/m/voice/VoiceOutput/index.html +27 -27
  325. package/app/m/voice/VoiceProfile/index.html +27 -27
  326. package/app/m/voice/VoiceSample/index.html +27 -27
  327. package/app/mcp.html +2 -2
  328. package/app/packages/ads/index.html +24 -24
  329. package/app/packages/analytics/index.html +24 -24
  330. package/app/packages/approvals/index.html +24 -24
  331. package/app/packages/assets/index.html +24 -24
  332. package/app/packages/chat/index.html +24 -24
  333. package/app/packages/comments/index.html +24 -24
  334. package/app/packages/commerce/index.html +24 -24
  335. package/app/packages/content/index.html +24 -24
  336. package/app/packages/events/index.html +24 -24
  337. package/app/packages/expenses/index.html +24 -24
  338. package/app/packages/facts/index.html +24 -24
  339. package/app/packages/fields/index.html +24 -24
  340. package/app/packages/human-resources/index.html +24 -24
  341. package/app/packages/images/index.html +24 -24
  342. package/app/packages/index.html +23 -23
  343. package/app/packages/ingestion/index.html +24 -24
  344. package/app/packages/inventory/index.html +24 -24
  345. package/app/packages/ledgers/index.html +24 -24
  346. package/app/packages/manufacturing/index.html +24 -24
  347. package/app/packages/marketing/index.html +24 -24
  348. package/app/packages/messages/index.html +24 -24
  349. package/app/packages/places/index.html +24 -24
  350. package/app/packages/preferences/index.html +24 -24
  351. package/app/packages/products/index.html +24 -24
  352. package/app/packages/profiles/index.html +24 -24
  353. package/app/packages/projects/index.html +24 -24
  354. package/app/packages/properties/index.html +24 -24
  355. package/app/packages/reports/index.html +24 -24
  356. package/app/packages/sales/index.html +24 -24
  357. package/app/packages/sites/index.html +24 -24
  358. package/app/packages/social/index.html +24 -24
  359. package/app/packages/subscriptions/index.html +24 -24
  360. package/app/packages/support/index.html +24 -24
  361. package/app/packages/tags/index.html +24 -24
  362. package/app/packages/timesheets/index.html +24 -24
  363. package/app/packages/users/index.html +24 -24
  364. package/app/packages/video/index.html +24 -24
  365. package/app/packages/voice/index.html +24 -24
  366. package/app/packages/webhooks/index.html +24 -24
  367. package/app/recipes/account-access/help/index.html +24 -24
  368. package/app/recipes/account-access/index.html +26 -26
  369. package/app/recipes/activity/help/index.html +24 -24
  370. package/app/recipes/activity/index.html +26 -26
  371. package/app/recipes/agreements/help/index.html +24 -24
  372. package/app/recipes/agreements/index.html +26 -26
  373. package/app/recipes/analytics.reports/help/index.html +24 -24
  374. package/app/recipes/analytics.reports/index.html +26 -26
  375. package/app/recipes/assets/help/index.html +24 -24
  376. package/app/recipes/assets/index.html +26 -26
  377. package/app/recipes/billing/help/index.html +24 -24
  378. package/app/recipes/billing/index.html +26 -26
  379. package/app/recipes/chat.assistant/help/index.html +24 -24
  380. package/app/recipes/chat.assistant/index.html +26 -26
  381. package/app/recipes/comments/help/index.html +24 -24
  382. package/app/recipes/comments/index.html +26 -26
  383. package/app/recipes/commerce.customers/help/index.html +24 -24
  384. package/app/recipes/commerce.customers/index.html +26 -26
  385. package/app/recipes/commerce.estimates/help/index.html +24 -24
  386. package/app/recipes/commerce.estimates/index.html +26 -26
  387. package/app/recipes/commerce.purchases/help/index.html +24 -24
  388. package/app/recipes/commerce.purchases/index.html +26 -26
  389. package/app/recipes/commerce.sales/help/index.html +24 -24
  390. package/app/recipes/commerce.sales/index.html +26 -26
  391. package/app/recipes/commerce.vendors/help/index.html +24 -24
  392. package/app/recipes/commerce.vendors/index.html +26 -26
  393. package/app/recipes/commerce.wholesale/help/index.html +24 -24
  394. package/app/recipes/commerce.wholesale/index.html +26 -26
  395. package/app/recipes/events.calendar/help/index.html +24 -24
  396. package/app/recipes/events.calendar/index.html +26 -26
  397. package/app/recipes/expenses.tracking/help/index.html +24 -24
  398. package/app/recipes/expenses.tracking/index.html +26 -26
  399. package/app/recipes/fields.form-customization/help/index.html +24 -24
  400. package/app/recipes/fields.form-customization/index.html +26 -26
  401. package/app/recipes/ingestion/help/index.html +24 -24
  402. package/app/recipes/ingestion/index.html +26 -26
  403. package/app/recipes/integrations/help/index.html +24 -24
  404. package/app/recipes/integrations/index.html +26 -26
  405. package/app/recipes/inventory.stock/help/index.html +24 -24
  406. package/app/recipes/inventory.stock/index.html +26 -26
  407. package/app/recipes/ledgers.bookkeeping/help/index.html +24 -24
  408. package/app/recipes/ledgers.bookkeeping/index.html +26 -26
  409. package/app/recipes/messages/help/index.html +24 -24
  410. package/app/recipes/messages/index.html +26 -26
  411. package/app/recipes/products/help/index.html +24 -24
  412. package/app/recipes/products/index.html +26 -26
  413. package/app/recipes/projects.tracker/help/index.html +24 -24
  414. package/app/recipes/projects.tracker/index.html +26 -26
  415. package/app/recipes/reports.materialized/help/index.html +24 -24
  416. package/app/recipes/reports.materialized/index.html +26 -26
  417. package/app/recipes/reports.runtime/help/index.html +24 -24
  418. package/app/recipes/reports.runtime/index.html +26 -26
  419. package/app/recipes/sales.pipeline/help/index.html +24 -24
  420. package/app/recipes/sales.pipeline/index.html +26 -26
  421. package/app/recipes/tags.taxonomy/help/index.html +24 -24
  422. package/app/recipes/tags.taxonomy/index.html +26 -26
  423. package/app/recipes/team-collaboration/help/index.html +24 -24
  424. package/app/recipes/team-collaboration/index.html +26 -26
  425. package/app/recipes/timesheets.time-entries/help/index.html +24 -24
  426. package/app/recipes/timesheets.time-entries/index.html +26 -26
  427. package/app/s/custom-accounts/index.html +23 -23
  428. package/app/s/custom-appointments/index.html +23 -23
  429. package/app/s/custom-billing/index.html +23 -23
  430. package/app/s/custom-bookings/index.html +23 -23
  431. package/app/s/custom-buying/index.html +23 -23
  432. package/app/s/custom-checkout/index.html +23 -23
  433. package/app/s/custom-classes/index.html +23 -23
  434. package/app/s/custom-clients/index.html +23 -23
  435. package/app/s/custom-events/index.html +23 -23
  436. package/app/s/custom-fleet/index.html +23 -23
  437. package/app/s/custom-gigs/index.html +23 -23
  438. package/app/s/custom-giving/index.html +23 -23
  439. package/app/s/custom-instruments/index.html +23 -23
  440. package/app/s/custom-jobs/index.html +23 -23
  441. package/app/s/custom-kitchen/index.html +23 -23
  442. package/app/s/custom-lessons/index.html +23 -23
  443. package/app/s/custom-material/index.html +23 -23
  444. package/app/s/custom-meetings/index.html +23 -23
  445. package/app/s/custom-members/index.html +23 -23
  446. package/app/s/custom-merch/index.html +23 -23
  447. package/app/s/custom-money/index.html +23 -23
  448. package/app/s/custom-paint/index.html +23 -23
  449. package/app/s/custom-parts/index.html +23 -23
  450. package/app/s/custom-rentals/index.html +23 -23
  451. package/app/s/custom-roastery/index.html +23 -23
  452. package/app/s/custom-schedule/index.html +23 -23
  453. package/app/s/custom-shelf/index.html +23 -23
  454. package/app/s/custom-shop/index.html +23 -23
  455. package/app/s/custom-students/index.html +23 -23
  456. package/app/s/custom-wholesale/index.html +23 -23
  457. package/app/s/custom-work/index.html +23 -23
  458. package/app/s/custom-yard/index.html +23 -23
  459. package/app/s/section-access-control/index.html +23 -23
  460. package/app/s/section-account-security/index.html +23 -23
  461. package/app/s/section-accounting/index.html +23 -23
  462. package/app/s/section-activity/index.html +23 -23
  463. package/app/s/section-agreements/index.html +23 -23
  464. package/app/s/section-analytics/index.html +23 -23
  465. package/app/s/section-assets/index.html +23 -23
  466. package/app/s/section-billing/index.html +23 -23
  467. package/app/s/section-calendar/index.html +23 -23
  468. package/app/s/section-catalog/index.html +23 -23
  469. package/app/s/section-chat.assistant/index.html +23 -23
  470. package/app/s/section-comments/index.html +23 -23
  471. package/app/s/section-fields.form-customization/index.html +23 -23
  472. package/app/s/section-ingestion/index.html +23 -23
  473. package/app/s/section-integrations/index.html +23 -23
  474. package/app/s/section-messages/index.html +23 -23
  475. package/app/s/section-more/index.html +23 -23
  476. package/app/s/section-operations/index.html +23 -23
  477. package/app/s/section-projects/index.html +23 -23
  478. package/app/s/section-purchasing/index.html +23 -23
  479. package/app/s/section-reports.materialized/index.html +23 -23
  480. package/app/s/section-reports.runtime/index.html +23 -23
  481. package/app/s/section-sales/index.html +23 -23
  482. package/app/s/section-taxonomy/index.html +23 -23
  483. package/app/s/section-team/index.html +23 -23
  484. package/app/s/section-work/index.html +23 -23
  485. package/dist/ai/instance.d.ts.map +1 -1
  486. package/dist/ai/instance.js +2 -0
  487. package/dist/assistant/change.d.ts +2 -0
  488. package/dist/assistant/change.d.ts.map +1 -1
  489. package/dist/assistant/change.js +5 -0
  490. package/dist/assistant/coaching.d.ts +7 -0
  491. package/dist/assistant/coaching.d.ts.map +1 -0
  492. package/dist/assistant/coaching.js +42 -0
  493. package/dist/assistant/prompt.d.ts.map +1 -1
  494. package/dist/assistant/prompt.js +1 -0
  495. package/dist/assistant/session.svelte.d.ts +4 -1
  496. package/dist/assistant/session.svelte.d.ts.map +1 -1
  497. package/dist/assistant/session.svelte.js +5 -1
  498. package/dist/assistant/starters.d.ts +7 -0
  499. package/dist/assistant/starters.d.ts.map +1 -0
  500. package/dist/assistant/starters.js +33 -0
  501. package/dist/assistant/transport.d.ts +37 -2
  502. package/dist/assistant/transport.d.ts.map +1 -1
  503. package/dist/assistant/transport.js +257 -56
  504. package/dist/catalog/catalog.json +38 -38
  505. package/dist/components/BrowserAssistant.svelte +20 -0
  506. package/dist/components/BrowserAssistant.svelte.d.ts.map +1 -1
  507. package/dist/components/ExportPanel.svelte +176 -118
  508. package/dist/components/ExportPanel.svelte.d.ts +8 -0
  509. package/dist/components/ExportPanel.svelte.d.ts.map +1 -1
  510. package/dist/components/HeaderIconLink.svelte +8 -0
  511. package/dist/components/HeaderIconLink.svelte.d.ts +1 -0
  512. package/dist/components/HeaderIconLink.svelte.d.ts.map +1 -1
  513. package/dist/components/ProjectControls.svelte +133 -0
  514. package/dist/components/ProjectControls.svelte.d.ts +15 -0
  515. package/dist/components/ProjectControls.svelte.d.ts.map +1 -0
  516. package/dist/components/SectionOverview.svelte +4 -5
  517. package/dist/components/SectionOverview.svelte.d.ts +1 -1
  518. package/dist/components/SectionOverview.svelte.d.ts.map +1 -1
  519. package/dist/components/SettingsPanel.svelte +37 -1
  520. package/dist/components/SettingsPanel.svelte.d.ts +7 -1
  521. package/dist/components/SettingsPanel.svelte.d.ts.map +1 -1
  522. package/dist/cookbook/file.d.ts +5 -0
  523. package/dist/cookbook/file.d.ts.map +1 -1
  524. package/dist/cookbook/file.js +9 -2
  525. package/dist/cookbook/store.svelte.d.ts +4 -1
  526. package/dist/cookbook/store.svelte.d.ts.map +1 -1
  527. package/dist/cookbook/store.svelte.js +9 -10
  528. package/dist/core/index.d.ts +1 -0
  529. package/dist/core/index.d.ts.map +1 -1
  530. package/dist/core/index.js +1 -0
  531. package/dist/core/prompt.d.ts.map +1 -1
  532. package/dist/core/prompt.js +10 -0
  533. package/dist/core/reply.d.ts +2 -0
  534. package/dist/core/reply.d.ts.map +1 -1
  535. package/dist/core/reply.js +4 -0
  536. package/dist/data/packs.d.ts.map +1 -1
  537. package/dist/data/packs.js +14 -7
  538. package/dist/data/planner-source.d.ts.map +1 -1
  539. package/dist/data/planner-source.js +4 -3
  540. package/dist/data/sample-context.d.ts +84 -0
  541. package/dist/data/sample-context.d.ts.map +1 -0
  542. package/dist/data/sample-context.js +106 -0
  543. package/dist/data/source.d.ts.map +1 -1
  544. package/dist/data/source.js +2 -0
  545. package/dist/index.d.ts +8 -1
  546. package/dist/index.d.ts.map +1 -1
  547. package/dist/index.js +3 -0
  548. package/dist/library/state.svelte.d.ts.map +1 -1
  549. package/dist/library/state.svelte.js +3 -3
  550. package/dist/overviews/definitions.d.ts +2 -2
  551. package/dist/overviews/definitions.d.ts.map +1 -1
  552. package/dist/overviews/definitions.js +19 -31
  553. package/dist/overviews/page.d.ts.map +1 -1
  554. package/dist/overviews/page.js +4 -1
  555. package/dist/overviews/registry.d.ts +1 -1
  556. package/dist/overviews/registry.js +3 -3
  557. package/dist/overviews/validate.d.ts.map +1 -1
  558. package/dist/overviews/validate.js +15 -2
  559. package/dist/planner/Planner.svelte +46 -4
  560. package/dist/planner/Planner.svelte.d.ts.map +1 -1
  561. package/dist/planner/PlannerControls.svelte +18 -2
  562. package/dist/planner/PlannerControls.svelte.d.ts +2 -0
  563. package/dist/planner/PlannerControls.svelte.d.ts.map +1 -1
  564. package/dist/planner/PlannerHostAction.svelte +61 -0
  565. package/dist/planner/PlannerHostAction.svelte.d.ts +12 -0
  566. package/dist/planner/PlannerHostAction.svelte.d.ts.map +1 -0
  567. package/dist/planner/PlannerLifecycle.svelte +75 -5
  568. package/dist/planner/PlannerLifecycle.svelte.d.ts +2 -1
  569. package/dist/planner/PlannerLifecycle.svelte.d.ts.map +1 -1
  570. package/dist/planner/bridge.d.ts +73 -0
  571. package/dist/planner/bridge.d.ts.map +1 -0
  572. package/dist/planner/bridge.js +303 -0
  573. package/dist/planner/commands/adapter.d.ts +2 -0
  574. package/dist/planner/commands/adapter.d.ts.map +1 -1
  575. package/dist/planner/commands/adapter.js +19 -0
  576. package/dist/planner/export-context.d.ts +6 -0
  577. package/dist/planner/export-context.d.ts.map +1 -0
  578. package/dist/planner/export-context.js +14 -0
  579. package/dist/planner/guide.d.ts +69 -0
  580. package/dist/planner/guide.d.ts.map +1 -0
  581. package/dist/planner/guide.js +115 -0
  582. package/dist/planner/host-reply.d.ts +22 -0
  583. package/dist/planner/host-reply.d.ts.map +1 -0
  584. package/dist/planner/host-reply.js +71 -0
  585. package/dist/planner/shell.d.ts +6 -0
  586. package/dist/planner/shell.d.ts.map +1 -1
  587. package/dist/planner/shell.js +2 -0
  588. package/dist/planner/types.d.ts +39 -1
  589. package/dist/planner/types.d.ts.map +1 -1
  590. package/dist/planner/workspace-storage.d.ts +29 -0
  591. package/dist/planner/workspace-storage.d.ts.map +1 -0
  592. package/dist/planner/workspace-storage.js +355 -0
  593. package/dist/planner/workspace.svelte.d.ts +19 -0
  594. package/dist/planner/workspace.svelte.d.ts.map +1 -0
  595. package/dist/planner/workspace.svelte.js +52 -0
  596. package/dist/smrt-version.d.ts +1 -1
  597. package/dist/smrt-version.js +1 -1
  598. package/package.json +54 -54
  599. package/app/_app/immutable/assets/2.CdEXvRg0.css +0 -1
  600. package/app/_app/immutable/assets/AppShell.BkKNrxND.css +0 -1
  601. package/app/_app/immutable/chunks/5TDxHd66.js +0 -1
  602. package/app/_app/immutable/chunks/9PL91wDk.js +0 -4
  603. package/app/_app/immutable/chunks/9iVbSlQr.js +0 -16
  604. package/app/_app/immutable/chunks/B-xSgl5J.js +0 -1
  605. package/app/_app/immutable/chunks/BDKUpjK6.js +0 -2
  606. package/app/_app/immutable/chunks/Bq35Wl4H.js +0 -2
  607. package/app/_app/immutable/chunks/Cu77BRmy.js +0 -1
  608. package/app/_app/immutable/chunks/CxZIUuYu.js +0 -1
  609. package/app/_app/immutable/chunks/CzHmSbsw.js +0 -1
  610. package/app/_app/immutable/chunks/D71UrO5c.js +0 -1
  611. package/app/_app/immutable/chunks/DF-0MxNw.js +0 -1
  612. package/app/_app/immutable/chunks/DaWOaOo5.js +0 -10
  613. package/app/_app/immutable/chunks/aDZBV4Ss.js +0 -26
  614. package/app/_app/immutable/entry/start.DQ2WMDJa.js +0 -1
  615. package/app/_app/immutable/nodes/0.CjivLsXS.js +0 -7
  616. package/app/_app/immutable/nodes/10.CRcxQ1FU.js +0 -3
  617. package/app/_app/immutable/nodes/14.CvNTiqf4.js +0 -1
  618. package/app/_app/immutable/nodes/2.D8ImYTF0.js +0 -24
  619. package/app/_app/immutable/nodes/7.Q7dzrAos.js +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/lib/planner/guide.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;AACvE,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;CA4BlC,CAAC;AAEF,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,kBAAkB;IACjC,SAAS,CACP,KAAK,EACD;QAAE,IAAI,EAAE,SAAS,CAAA;KAAE,GACnB;QAAE,IAAI,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,GACjD;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,YAAY,CAAC;QAAC,MAAM,EAAE,WAAW,CAAA;KAAE,GAClE,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAC/B,OAAO,IAAI,IAAI,CAAC;CACjB;AACD,6FAA6F;AAC7F,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW;;;;;;;;;;;;;;;;cAY5E;AACD,wBAAgB,kBAAkB,CAAC,OAAO,EAAE;IAC1C,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,SAAS,EAAE,MAAM,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB,GAAG,kBAAkB,CA8ErB"}
@@ -0,0 +1,115 @@
1
+ import { highlightControl } from '@happyvertical/smrt-ui/forms';
2
+ import { tick } from 'svelte';
3
+ export const PLANNER_GUIDE_CONTROLS = {
4
+ build: {
5
+ targetId: 'item:planner-host-action',
6
+ label: 'Build it',
7
+ description: 'Build it prepares your current plan and conversation for the next build step.',
8
+ },
9
+ export: {
10
+ targetId: 'item:planner-export',
11
+ label: 'Export',
12
+ description: 'Export opens the cookbook download and prompt options for your current plan.',
13
+ },
14
+ chef: {
15
+ targetId: 'item:planner-customize',
16
+ label: 'Plan the app',
17
+ description: 'The chef hat opens Cookbooks, Recipes, Theme and Settings to plan your app.',
18
+ },
19
+ edit: {
20
+ targetId: 'item:layout-edit',
21
+ label: 'Edit',
22
+ description: 'Edit lets you rearrange the menu and page layout in the planner.',
23
+ },
24
+ };
25
+ /** Semantic target choice is based on actual before/after execution, never catalog order. */
26
+ export function additionGuideTarget(before, result) {
27
+ if (!result.ok || !result.receipt.changed || result.replayed)
28
+ return;
29
+ const previous = new Set(before.sections.flatMap((section) => section.items.map((item) => item.id)));
30
+ for (const section of result.snapshot.sections) {
31
+ if (section.hidden)
32
+ continue;
33
+ const item = section.items.find((value) => !value.hidden && !previous.has(value.id));
34
+ if (item)
35
+ return { section, item };
36
+ }
37
+ }
38
+ export function createPlannerGuide(options) {
39
+ let active;
40
+ let clearHighlight;
41
+ let timer;
42
+ let ticket = 0;
43
+ let arrivalShown = false;
44
+ const clear = () => {
45
+ if (timer)
46
+ clearTimeout(timer);
47
+ timer = undefined;
48
+ clearHighlight?.();
49
+ clearHighlight = undefined;
50
+ if (active) {
51
+ delete active.dataset.smrtHighlighted;
52
+ active.removeEventListener('click', dismiss);
53
+ }
54
+ active = undefined;
55
+ if (typeof document !== 'undefined')
56
+ document.removeEventListener('keydown', onKey);
57
+ };
58
+ const dismiss = () => {
59
+ ticket++;
60
+ clear();
61
+ };
62
+ const onKey = (event) => {
63
+ if (event.key === 'Escape')
64
+ dismiss();
65
+ };
66
+ return {
67
+ dismiss,
68
+ async highlight(input) {
69
+ if (input.kind === 'arrival' && arrivalShown)
70
+ return { ok: false, reason: 'Arrival guidance was already shown.' };
71
+ const request = ++ticket;
72
+ const added = input.kind === 'addition'
73
+ ? additionGuideTarget(input.before, input.result)
74
+ : undefined;
75
+ if (input.kind === 'addition' && !added)
76
+ return { ok: false, reason: 'No new visible menu item was added.' };
77
+ if (added)
78
+ options.revealMenu?.();
79
+ await tick();
80
+ if (!options.isMounted() || request !== ticket)
81
+ return { ok: false, reason: 'Guidance is no longer active.' };
82
+ const control = PLANNER_GUIDE_CONTROLS[input.kind === 'control' ? input.control : 'edit'];
83
+ const targetId = added?.section.id ?? control.targetId;
84
+ const node = options.targets?.get(targetId) ??
85
+ (added ? options.targets?.get(added.item.id) : undefined);
86
+ if (!node)
87
+ return {
88
+ ok: false,
89
+ reason: 'The actual guide target is not available.',
90
+ };
91
+ clear();
92
+ active = node;
93
+ clearHighlight = highlightControl(node, 6000, {
94
+ presentation: 'spotlight',
95
+ dismissLabel: 'Dismiss guidance',
96
+ onDismiss: dismiss,
97
+ });
98
+ if (request !== ticket)
99
+ return { ok: false, reason: 'The actual guide target is not visible.' };
100
+ if (input.kind === 'arrival')
101
+ arrivalShown = true;
102
+ node.addEventListener('click', dismiss, { once: true });
103
+ document.addEventListener('keydown', onKey);
104
+ timer = setTimeout(clear, 6000);
105
+ return {
106
+ ok: true,
107
+ targetId: node.dataset.smrtTarget ?? targetId,
108
+ label: added?.section.label ?? control.label,
109
+ description: added
110
+ ? `Find ${added.item.label} under ${added.section.label} in the planner’s main menu.`
111
+ : control.description,
112
+ };
113
+ },
114
+ };
115
+ }
@@ -0,0 +1,22 @@
1
+ import type { BatchResult, CommandName, PlannerController, PlanSnapshot } from './commands/index.ts';
2
+ export interface PlannerHostReplyResult {
3
+ ok: boolean;
4
+ snapshot: PlanSnapshot;
5
+ result?: BatchResult;
6
+ content: string;
7
+ spokenContent?: string;
8
+ sampleContextApplied: boolean;
9
+ error?: {
10
+ code: string;
11
+ message: string;
12
+ };
13
+ }
14
+ /** Validate a hosted reply and execute it on the real mounted plan, without a chat thread. */
15
+ export declare function applyPlannerHostReply(options: {
16
+ controller: PlannerController;
17
+ allowedCommands: readonly CommandName[];
18
+ id: string;
19
+ expectedRevision: number;
20
+ reply: unknown;
21
+ }): PlannerHostReplyResult;
22
+ //# sourceMappingURL=host-reply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"host-reply.d.ts","sourceRoot":"","sources":["../../src/lib/planner/host-reply.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAID,8FAA8F;AAC9F,wBAAgB,qBAAqB,CAAC,OAAO,EAAE;IAC7C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,eAAe,EAAE,SAAS,WAAW,EAAE,CAAC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,gBAAgB,EAAE,MAAM,CAAC;IACzB,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,sBAAsB,CA2FzB"}
@@ -0,0 +1,71 @@
1
+ import { appliedCoaching, appliedSpokenCoaching, } from "../assistant/coaching.js";
2
+ import { honestReply } from "../assistant/transport.js";
3
+ import { applySampleContext, parseSampleContext, } from "../data/sample-context.js";
4
+ import { recipes } from "../recipes/index.js";
5
+ const object = (value) => !!value && typeof value === 'object' && !Array.isArray(value);
6
+ /** Validate a hosted reply and execute it on the real mounted plan, without a chat thread. */
7
+ export function applyPlannerHostReply(options) {
8
+ const { controller, allowedCommands, id, expectedRevision, reply } = options;
9
+ const before = controller.snapshot();
10
+ const fail = (code, message) => ({
11
+ ok: false,
12
+ snapshot: controller.snapshot(),
13
+ content: message,
14
+ sampleContextApplied: false,
15
+ error: { code, message },
16
+ });
17
+ if (before.revision !== expectedRevision)
18
+ return fail('conflict', 'The app changed while the reply was being prepared. Read the current plan and try again.');
19
+ if (!object(reply) ||
20
+ Object.keys(reply).some((key) => !['reply', 'commands', 'sampleContext'].includes(key)) ||
21
+ typeof reply.reply !== 'string' ||
22
+ reply.reply.length > 4000 ||
23
+ (reply.commands !== undefined && !Array.isArray(reply.commands)))
24
+ return fail('invalid_input', 'The hosted reply is not a supported command reply.');
25
+ const commands = (reply.commands ?? []);
26
+ if (commands.length > 16 ||
27
+ commands.some((command) => !object(command) ||
28
+ Object.keys(command).some((key) => !['name', 'input'].includes(key)) ||
29
+ typeof command.name !== 'string' ||
30
+ !allowedCommands.includes(command.name)))
31
+ return fail('forbidden', 'The reply contains a command this host does not allow.');
32
+ const sample = reply.sampleContext === undefined
33
+ ? undefined
34
+ : parseSampleContext(reply.sampleContext);
35
+ if (reply.sampleContext !== undefined && !sample)
36
+ return fail('invalid_input', 'The reply contains invalid fictional sample context.');
37
+ if (!commands.length)
38
+ return {
39
+ ok: true,
40
+ snapshot: before,
41
+ content: honestReply(reply.reply, '', false),
42
+ sampleContextApplied: false,
43
+ };
44
+ const result = controller.batch({ id, expectedRevision, commands });
45
+ if (!result.ok)
46
+ return { ...fail(result.error.code, result.error.message), result };
47
+ const changed = result.results.some((item) => item.receipt.changed);
48
+ const sampleContextApplied = !!sample && changed && !result.replayed && applySampleContext(sample);
49
+ const summary = result.results
50
+ .map((item) => item.receipt.summary)
51
+ .filter(Boolean)
52
+ .join(' ');
53
+ const content = [
54
+ honestReply(reply.reply, summary, false),
55
+ appliedCoaching(before, result.snapshot, result.results, recipes),
56
+ ]
57
+ .filter(Boolean)
58
+ .join(' ');
59
+ return {
60
+ ok: true,
61
+ snapshot: result.snapshot,
62
+ result,
63
+ content,
64
+ ...(changed && !result.replayed
65
+ ? {
66
+ spokenContent: appliedSpokenCoaching(before, result.snapshot, result.results),
67
+ }
68
+ : {}),
69
+ sampleContextApplied,
70
+ };
71
+ }
@@ -34,6 +34,12 @@ export declare function plannerShellProps(): {
34
34
  readonly name?: string | null;
35
35
  readonly avatarUrl?: string | null;
36
36
  };
37
+ colorSchemeToggle: {
38
+ slot: "leftSidebar.footer";
39
+ };
40
+ accountMenu: {
41
+ slot: "leftSidebar.footer";
42
+ };
37
43
  phoneTabBar: boolean;
38
44
  phoneDock: "sheet";
39
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/lib/planner/shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAE1E,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,EAAE,kBAM1C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,UAAU,CAQZ;AAED,KAAK,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAUnB,CAAC;AAEf,gDAAgD;AAChD,wBAAgB,iBAAiB;;;;;;;;;;;;EAShC"}
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/lib/planner/shell.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EACV,SAAS,EACT,kBAAkB,EACnB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAE1E,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,4BAA4B,EAAE,kBAM1C,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,GACb,UAAU,CAQZ;AAED,KAAK,SAAS,GAAG,WAAW,CAAC,cAAc,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,SAUnB,CAAC;AAEf,gDAAgD;AAChD,wBAAgB,iBAAiB;;;;;;;;;;;;;;;;;;EAWhC"}
@@ -52,6 +52,8 @@ export function plannerShellProps() {
52
52
  config: PLANNER_SHELL_PANEL_DEFAULTS,
53
53
  hotkeys: false,
54
54
  user: PLANNER_SHELL_USER,
55
+ colorSchemeToggle: { slot: 'leftSidebar.footer' },
56
+ accountMenu: { slot: 'leftSidebar.footer' },
55
57
  phoneTabBar: true,
56
58
  phoneDock: 'sheet',
57
59
  };
@@ -1,19 +1,54 @@
1
+ import type { AssistantMessage } from '@happyvertical/smrt-chat/svelte';
2
+ import type { BrowserAssistantTransport, PlannerConversationSeed, PlannerHostTurnHandler } from '../assistant/transport.ts';
1
3
  import type { PlannerAssistant, PlannerInference } from './assistant.ts';
2
- import type { PlannerController, PlannerTabId } from './commands/index.ts';
4
+ import type { ExportData, PlannerController, PlannerTabId } from './commands/index.ts';
5
+ import type { PlannerGuideHandle } from './guide.ts';
6
+ export type PlannerProjectPersistence = typeof import('./workspace.svelte.ts').workspacePersistence;
3
7
  /** What `onready` hands a host once the planner is mounted. */
4
8
  export interface PlannerHandle {
9
+ /** Host draft storage follows this workspace’s remember/session policy. */
10
+ workspaceStorage?: Storage;
5
11
  controller: PlannerController;
12
+ guide?: PlannerGuideHandle;
6
13
  /** Present when `inference` was given: a chat transport driven by the controller. */
7
14
  assistant?: PlannerAssistant;
15
+ /** Complete Planner only: the same transport used by its visible native dock. */
16
+ nativeAssistant?: BrowserAssistantTransport;
17
+ /** Complete Planner only: open/focus the ready native dock; false if unavailable. */
18
+ openAssistant?: () => Promise<boolean>;
19
+ }
20
+ /** Detached, complete document and native thread captured together at action time. */
21
+ export interface PlannerExportContext {
22
+ export: ExportData;
23
+ revision: number;
24
+ conversation: AssistantMessage[];
25
+ }
26
+ export interface PlannerExportAction {
27
+ label: string;
28
+ run(context: PlannerExportContext): void | Promise<void>;
8
29
  }
9
30
  /** Shared props for the complete Planner and the separately mounted controls. */
10
31
  export interface PlannerProps {
32
+ /** Suppress the empty cookbook chooser while a trusted host conceives the app. */
33
+ entryMode?: 'browse' | 'planning';
34
+ /** Trusted host receives only current native user sends, never model output. */
35
+ conversationalAction?: PlannerHostTurnHandler;
36
+ onreset?: () => void;
37
+ resetDisabledReason?: string;
11
38
  /**
12
39
  * The commands to drive the planner with and the snapshot to read. Defaults
13
40
  * to the app's own. A controller made with `createPlannerController` works
14
41
  * too; the planner follows its `focus` tab.
15
42
  */
16
43
  controller?: PlannerController;
44
+ /** Complete Planner only: primary header action with the same export capture. */
45
+ headerAction?: PlannerExportAction;
46
+ /** Optional first primary Export action; native download remains available. */
47
+ exportAction?: PlannerExportAction;
48
+ /** Complete Planner only: plain earlier turns, seeded before native sends. */
49
+ initialConversation?: PlannerConversationSeed;
50
+ /** Complete Planner only: offer library cookbooks in native chat (default true). */
51
+ cookbookOffers?: boolean;
17
52
  /**
18
53
  * Where the customization controls' own pages are served from (`''`,
19
54
  * `'/planner'`). The complete Planner uses fragment paths for its app
@@ -40,6 +75,9 @@ export interface PlannerProps {
40
75
  * layout does them).
41
76
  */
42
77
  persistence?: 'self' | 'host';
78
+ /** Host-owned storage UI capability. Supply only from the owner that actually
79
+ * saves the current cookbook; self mode uses the canonical facade by default. */
80
+ projectPersistence?: PlannerProjectPersistence | null;
43
81
  /** Show the theme preset and light/dark controls (they need a theme provider). */
44
82
  themeControls?: boolean;
45
83
  /** Link to the host's Advanced Styles page, when mounting controls alone. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/planner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAE3E,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,qFAAqF;IACrF,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B;AAED,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/planner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,KAAK,EACV,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,KAAK,EACV,UAAU,EACV,iBAAiB,EACjB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,MAAM,MAAM,yBAAyB,GACnC,cAAc,uBAAuB,EAAE,oBAAoB,CAAC;AAE9D,+DAA+D;AAC/D,MAAM,WAAW,aAAa;IAC5B,2EAA2E;IAC3E,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,UAAU,EAAE,iBAAiB,CAAC;IAC9B,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAC3B,qFAAqF;IACrF,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,iFAAiF;IACjF,eAAe,CAAC,EAAE,yBAAyB,CAAC;IAC5C,qFAAqF;IACrF,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;CACxC;AAED,sFAAsF;AACtF,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,OAAO,EAAE,oBAAoB,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D;AAED,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,kFAAkF;IAClF,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAClC,gFAAgF;IAChF,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;IAC9C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,iFAAiF;IACjF,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,+EAA+E;IAC/E,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,8EAA8E;IAC9E,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,oFAAoF;IACpF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B;;;;OAIG;IACH,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,CAAC;IACzB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B;qFACiF;IACjF,kBAAkB,CAAC,EAAE,yBAAyB,GAAG,IAAI,CAAC;IACtD,kFAAkF;IAClF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAC3B;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,IAAI,CAAC;CAC3C;AAED,sDAAsD;AACtD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf"}
@@ -0,0 +1,29 @@
1
+ /** Project data is tab-scoped unless the visitor explicitly remembers it. */
2
+ export declare const REMEMBER_KEY = "smrt-planner:remember:v1";
3
+ export declare const LEGACY_WORKSPACE_KEY = "smrt-planner:legacy-workspace:v1";
4
+ export declare const EPHEMERAL_RECOVERY_KEY = "smrt-planner:ephemeral-recovery:v1";
5
+ export declare const ownsWorkspaceKey: (key: string) => boolean;
6
+ /** Storage is injected for deterministic tests and restricted browser contexts. */
7
+ export declare function createWorkspaceStorage(local: Storage | null, session: Storage | null): {
8
+ storage: Storage;
9
+ remembering(): boolean;
10
+ recoveryAvailable(): boolean;
11
+ setRemember(value: boolean): boolean;
12
+ discardRecovery(): boolean;
13
+ recover(): boolean;
14
+ reset(): boolean;
15
+ };
16
+ export declare function workspaceStorageManager(): {
17
+ storage: Storage;
18
+ remembering(): boolean;
19
+ recoveryAvailable(): boolean;
20
+ setRemember(value: boolean): boolean;
21
+ discardRecovery(): boolean;
22
+ recover(): boolean;
23
+ reset(): boolean;
24
+ };
25
+ export declare function workspaceStorage(): Storage;
26
+ export declare function rememberPlan(): boolean;
27
+ export declare function setRememberPlan(value: boolean): boolean;
28
+ export declare function resetWorkspaceStorage(): boolean;
29
+ //# sourceMappingURL=workspace-storage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workspace-storage.d.ts","sourceRoot":"","sources":["../../src/lib/planner/workspace-storage.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,eAAO,MAAM,YAAY,6BAA6B,CAAC;AACvD,eAAO,MAAM,oBAAoB,qCAAqC,CAAC;AACvE,eAAO,MAAM,sBAAsB,uCAAuC,CAAC;AAuB3E,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,OACiB,CAAC;AAqBjE,mFAAmF;AACnF,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,OAAO,EAAE,OAAO,GAAG,IAAI;;;;uBAgJF,OAAO,GAAG,OAAO;uBAkCjB,OAAO;eAQf,OAAO;aAuCT,OAAO;EA+CnB;AAED,wBAAgB,uBAAuB;;;;uBAlIhB,OAAO,GAAG,OAAO;uBAkCjB,OAAO;eAQf,OAAO;aAuCT,OAAO;EAwDnB;AACD,wBAAgB,gBAAgB,IAAI,OAAO,CAE1C;AACD,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AACD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAEvD;AACD,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}