@playcraft/common 0.1.42 → 0.1.43-beta

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 (381) hide show
  1. package/README.md +1 -1
  2. package/dist/agent/session-title.d.ts +1 -1
  3. package/dist/agent/session-title.js +1 -1
  4. package/dist/agent-messages/db-message-converter.d.ts +10 -0
  5. package/dist/agent-messages/db-message-converter.d.ts.map +1 -1
  6. package/dist/agent-messages/db-message-converter.js +13 -0
  7. package/dist/agent-messages/db-message-converter.js.map +1 -1
  8. package/dist/agent-tools/index.d.ts +5 -0
  9. package/dist/agent-tools/index.d.ts.map +1 -1
  10. package/dist/agent-tools/index.js +5 -0
  11. package/dist/agent-tools/index.js.map +1 -1
  12. package/dist/agent-tools/operation-protocol.d.ts +10 -0
  13. package/dist/agent-tools/operation-protocol.d.ts.map +1 -0
  14. package/dist/agent-tools/operation-protocol.js +13 -0
  15. package/dist/agent-tools/operation-protocol.js.map +1 -0
  16. package/dist/agent-tools/replica-recording.d.ts +283 -0
  17. package/dist/agent-tools/replica-recording.d.ts.map +1 -0
  18. package/dist/agent-tools/replica-recording.js +109 -0
  19. package/dist/agent-tools/replica-recording.js.map +1 -0
  20. package/dist/agent-tools/replica-validation.d.ts +972 -0
  21. package/dist/agent-tools/replica-validation.d.ts.map +1 -0
  22. package/dist/agent-tools/replica-validation.js +254 -0
  23. package/dist/agent-tools/replica-validation.js.map +1 -0
  24. package/dist/agent-tools/types.d.ts +9 -24
  25. package/dist/agent-tools/types.d.ts.map +1 -1
  26. package/dist/agent-tools/types.js.map +1 -1
  27. package/dist/agent-tools/video-model-proxy.d.ts +113 -0
  28. package/dist/agent-tools/video-model-proxy.d.ts.map +1 -0
  29. package/dist/agent-tools/video-model-proxy.js +49 -0
  30. package/dist/agent-tools/video-model-proxy.js.map +1 -0
  31. package/dist/agent-tools/video-replication.d.ts +421 -0
  32. package/dist/agent-tools/video-replication.d.ts.map +1 -0
  33. package/dist/agent-tools/video-replication.js +95 -0
  34. package/dist/agent-tools/video-replication.js.map +1 -0
  35. package/dist/cloud-workspace/runtime/agent-background-processes.d.ts +68 -0
  36. package/dist/cloud-workspace/runtime/agent-background-processes.d.ts.map +1 -0
  37. package/dist/cloud-workspace/runtime/agent-background-processes.js +60 -0
  38. package/dist/cloud-workspace/runtime/agent-background-processes.js.map +1 -0
  39. package/dist/cloud-workspace/runtime/agent-chat-flush.d.ts +55 -0
  40. package/dist/cloud-workspace/runtime/agent-chat-flush.d.ts.map +1 -0
  41. package/dist/cloud-workspace/runtime/agent-chat-flush.js +51 -0
  42. package/dist/cloud-workspace/runtime/agent-chat-flush.js.map +1 -0
  43. package/dist/cloud-workspace/runtime/agent-command.d.ts +152 -0
  44. package/dist/cloud-workspace/runtime/agent-command.d.ts.map +1 -0
  45. package/dist/cloud-workspace/runtime/agent-command.js +90 -0
  46. package/dist/cloud-workspace/runtime/agent-command.js.map +1 -0
  47. package/dist/cloud-workspace/runtime/agent-competitor-report.d.ts +143 -0
  48. package/dist/cloud-workspace/runtime/agent-competitor-report.d.ts.map +1 -0
  49. package/dist/cloud-workspace/runtime/agent-competitor-report.js +115 -0
  50. package/dist/cloud-workspace/runtime/agent-competitor-report.js.map +1 -0
  51. package/dist/cloud-workspace/runtime/agent-connection.d.ts +76 -0
  52. package/dist/cloud-workspace/runtime/agent-connection.d.ts.map +1 -0
  53. package/dist/cloud-workspace/runtime/agent-connection.js +59 -0
  54. package/dist/cloud-workspace/runtime/agent-connection.js.map +1 -0
  55. package/dist/cloud-workspace/runtime/agent-issue-artifacts.d.ts +90 -0
  56. package/dist/cloud-workspace/runtime/agent-issue-artifacts.d.ts.map +1 -0
  57. package/dist/cloud-workspace/runtime/agent-issue-artifacts.js +60 -0
  58. package/dist/cloud-workspace/runtime/agent-issue-artifacts.js.map +1 -0
  59. package/dist/cloud-workspace/runtime/agent-lifecycle.d.ts +87 -0
  60. package/dist/cloud-workspace/runtime/agent-lifecycle.d.ts.map +1 -0
  61. package/dist/cloud-workspace/runtime/agent-lifecycle.js +75 -0
  62. package/dist/cloud-workspace/runtime/agent-lifecycle.js.map +1 -0
  63. package/dist/cloud-workspace/runtime/agent-mutation.d.ts +197 -0
  64. package/dist/cloud-workspace/runtime/agent-mutation.d.ts.map +1 -0
  65. package/dist/cloud-workspace/runtime/agent-mutation.js +114 -0
  66. package/dist/cloud-workspace/runtime/agent-mutation.js.map +1 -0
  67. package/dist/cloud-workspace/runtime/agent-opencode-gateway.d.ts +210 -0
  68. package/dist/cloud-workspace/runtime/agent-opencode-gateway.d.ts.map +1 -0
  69. package/dist/cloud-workspace/runtime/agent-opencode-gateway.js +180 -0
  70. package/dist/cloud-workspace/runtime/agent-opencode-gateway.js.map +1 -0
  71. package/dist/cloud-workspace/runtime/agent-opencode.d.ts +406 -0
  72. package/dist/cloud-workspace/runtime/agent-opencode.d.ts.map +1 -0
  73. package/dist/cloud-workspace/runtime/agent-opencode.js +237 -0
  74. package/dist/cloud-workspace/runtime/agent-opencode.js.map +1 -0
  75. package/dist/cloud-workspace/runtime/agent-promotion.d.ts +21 -0
  76. package/dist/cloud-workspace/runtime/agent-promotion.d.ts.map +1 -0
  77. package/dist/cloud-workspace/runtime/agent-promotion.js +23 -0
  78. package/dist/cloud-workspace/runtime/agent-promotion.js.map +1 -0
  79. package/dist/cloud-workspace/runtime/agent-read.d.ts +343 -0
  80. package/dist/cloud-workspace/runtime/agent-read.d.ts.map +1 -0
  81. package/dist/cloud-workspace/runtime/agent-read.js +159 -0
  82. package/dist/cloud-workspace/runtime/agent-read.js.map +1 -0
  83. package/dist/cloud-workspace/runtime/agent-source-project.d.ts +126 -0
  84. package/dist/cloud-workspace/runtime/agent-source-project.d.ts.map +1 -0
  85. package/dist/cloud-workspace/runtime/agent-source-project.js +95 -0
  86. package/dist/cloud-workspace/runtime/agent-source-project.js.map +1 -0
  87. package/dist/cloud-workspace/runtime/agent-tool-claim.d.ts +18 -0
  88. package/dist/cloud-workspace/runtime/agent-tool-claim.d.ts.map +1 -0
  89. package/dist/cloud-workspace/runtime/agent-tool-claim.js +16 -0
  90. package/dist/cloud-workspace/runtime/agent-tool-claim.js.map +1 -0
  91. package/dist/cloud-workspace/runtime/agent-variant-chat.d.ts +9 -0
  92. package/dist/cloud-workspace/runtime/agent-variant-chat.d.ts.map +1 -0
  93. package/dist/cloud-workspace/runtime/agent-variant-chat.js +23 -0
  94. package/dist/cloud-workspace/runtime/agent-variant-chat.js.map +1 -0
  95. package/dist/cloud-workspace/runtime/agent-variant-git.d.ts +75 -0
  96. package/dist/cloud-workspace/runtime/agent-variant-git.d.ts.map +1 -0
  97. package/dist/cloud-workspace/runtime/agent-variant-git.js +62 -0
  98. package/dist/cloud-workspace/runtime/agent-variant-git.js.map +1 -0
  99. package/dist/cloud-workspace/runtime/artifacts.d.ts +239 -0
  100. package/dist/cloud-workspace/runtime/artifacts.d.ts.map +1 -0
  101. package/dist/cloud-workspace/runtime/artifacts.js +105 -0
  102. package/dist/cloud-workspace/runtime/artifacts.js.map +1 -0
  103. package/dist/cloud-workspace/runtime/asset-generation.d.ts +493 -0
  104. package/dist/cloud-workspace/runtime/asset-generation.d.ts.map +1 -0
  105. package/dist/cloud-workspace/runtime/asset-generation.js +118 -0
  106. package/dist/cloud-workspace/runtime/asset-generation.js.map +1 -0
  107. package/dist/cloud-workspace/runtime/asset-library-import.d.ts +50 -0
  108. package/dist/cloud-workspace/runtime/asset-library-import.d.ts.map +1 -0
  109. package/dist/cloud-workspace/runtime/asset-library-import.js +28 -0
  110. package/dist/cloud-workspace/runtime/asset-library-import.js.map +1 -0
  111. package/dist/cloud-workspace/runtime/attachment-base64.d.ts +3 -0
  112. package/dist/cloud-workspace/runtime/attachment-base64.d.ts.map +1 -0
  113. package/dist/cloud-workspace/runtime/attachment-base64.js +8 -0
  114. package/dist/cloud-workspace/runtime/attachment-base64.js.map +1 -0
  115. package/dist/cloud-workspace/runtime/attachments.d.ts +33 -0
  116. package/dist/cloud-workspace/runtime/attachments.d.ts.map +1 -0
  117. package/dist/cloud-workspace/runtime/attachments.js +35 -0
  118. package/dist/cloud-workspace/runtime/attachments.js.map +1 -0
  119. package/dist/cloud-workspace/runtime/batch-generation.d.ts +260 -0
  120. package/dist/cloud-workspace/runtime/batch-generation.d.ts.map +1 -0
  121. package/dist/cloud-workspace/runtime/batch-generation.js +279 -0
  122. package/dist/cloud-workspace/runtime/batch-generation.js.map +1 -0
  123. package/dist/cloud-workspace/runtime/batch-production-authority.d.ts +6 -0
  124. package/dist/cloud-workspace/runtime/batch-production-authority.d.ts.map +1 -0
  125. package/dist/cloud-workspace/runtime/batch-production-authority.js +31 -0
  126. package/dist/cloud-workspace/runtime/batch-production-authority.js.map +1 -0
  127. package/dist/cloud-workspace/runtime/batch-production.d.ts +512 -0
  128. package/dist/cloud-workspace/runtime/batch-production.d.ts.map +1 -0
  129. package/dist/cloud-workspace/runtime/batch-production.js +74 -0
  130. package/dist/cloud-workspace/runtime/batch-production.js.map +1 -0
  131. package/dist/cloud-workspace/runtime/capabilities.d.ts +40 -0
  132. package/dist/cloud-workspace/runtime/capabilities.d.ts.map +1 -0
  133. package/dist/cloud-workspace/runtime/capabilities.js +53 -0
  134. package/dist/cloud-workspace/runtime/capabilities.js.map +1 -0
  135. package/dist/cloud-workspace/runtime/chat-realtime-admission.d.ts +53 -0
  136. package/dist/cloud-workspace/runtime/chat-realtime-admission.d.ts.map +1 -0
  137. package/dist/cloud-workspace/runtime/chat-realtime-admission.js +95 -0
  138. package/dist/cloud-workspace/runtime/chat-realtime-admission.js.map +1 -0
  139. package/dist/cloud-workspace/runtime/chat-realtime.d.ts +197 -0
  140. package/dist/cloud-workspace/runtime/chat-realtime.d.ts.map +1 -0
  141. package/dist/cloud-workspace/runtime/chat-realtime.js +300 -0
  142. package/dist/cloud-workspace/runtime/chat-realtime.js.map +1 -0
  143. package/dist/cloud-workspace/runtime/checkpoints.d.ts +35 -0
  144. package/dist/cloud-workspace/runtime/checkpoints.d.ts.map +1 -0
  145. package/dist/cloud-workspace/runtime/checkpoints.js +35 -0
  146. package/dist/cloud-workspace/runtime/checkpoints.js.map +1 -0
  147. package/dist/cloud-workspace/runtime/composer-context.d.ts +82 -0
  148. package/dist/cloud-workspace/runtime/composer-context.d.ts.map +1 -0
  149. package/dist/cloud-workspace/runtime/composer-context.js +51 -0
  150. package/dist/cloud-workspace/runtime/composer-context.js.map +1 -0
  151. package/dist/cloud-workspace/runtime/config.d.ts +48 -0
  152. package/dist/cloud-workspace/runtime/config.d.ts.map +1 -0
  153. package/dist/cloud-workspace/runtime/config.js +126 -0
  154. package/dist/cloud-workspace/runtime/config.js.map +1 -0
  155. package/dist/cloud-workspace/runtime/connectivity.d.ts +211 -0
  156. package/dist/cloud-workspace/runtime/connectivity.d.ts.map +1 -0
  157. package/dist/cloud-workspace/runtime/connectivity.js +46 -0
  158. package/dist/cloud-workspace/runtime/connectivity.js.map +1 -0
  159. package/dist/cloud-workspace/runtime/directory-attachments.d.ts +28 -0
  160. package/dist/cloud-workspace/runtime/directory-attachments.d.ts.map +1 -0
  161. package/dist/cloud-workspace/runtime/directory-attachments.js +30 -0
  162. package/dist/cloud-workspace/runtime/directory-attachments.js.map +1 -0
  163. package/dist/cloud-workspace/runtime/errors.d.ts +26 -0
  164. package/dist/cloud-workspace/runtime/errors.d.ts.map +1 -0
  165. package/dist/cloud-workspace/runtime/errors.js +40 -0
  166. package/dist/cloud-workspace/runtime/errors.js.map +1 -0
  167. package/dist/cloud-workspace/runtime/events.d.ts +107 -0
  168. package/dist/cloud-workspace/runtime/events.d.ts.map +1 -0
  169. package/dist/cloud-workspace/runtime/events.js +70 -0
  170. package/dist/cloud-workspace/runtime/events.js.map +1 -0
  171. package/dist/cloud-workspace/runtime/execution-grant.d.ts +36 -0
  172. package/dist/cloud-workspace/runtime/execution-grant.d.ts.map +1 -0
  173. package/dist/cloud-workspace/runtime/execution-grant.js +102 -0
  174. package/dist/cloud-workspace/runtime/execution-grant.js.map +1 -0
  175. package/dist/cloud-workspace/runtime/files-search.d.ts +17 -0
  176. package/dist/cloud-workspace/runtime/files-search.d.ts.map +1 -0
  177. package/dist/cloud-workspace/runtime/files-search.js +14 -0
  178. package/dist/cloud-workspace/runtime/files-search.js.map +1 -0
  179. package/dist/cloud-workspace/runtime/files.d.ts +131 -0
  180. package/dist/cloud-workspace/runtime/files.d.ts.map +1 -0
  181. package/dist/cloud-workspace/runtime/files.js +128 -0
  182. package/dist/cloud-workspace/runtime/files.js.map +1 -0
  183. package/dist/cloud-workspace/runtime/generations.d.ts +18 -0
  184. package/dist/cloud-workspace/runtime/generations.d.ts.map +1 -0
  185. package/dist/cloud-workspace/runtime/generations.js +39 -0
  186. package/dist/cloud-workspace/runtime/generations.js.map +1 -0
  187. package/dist/cloud-workspace/runtime/git-auth-mode.d.ts +35 -0
  188. package/dist/cloud-workspace/runtime/git-auth-mode.d.ts.map +1 -0
  189. package/dist/cloud-workspace/runtime/git-auth-mode.js +73 -0
  190. package/dist/cloud-workspace/runtime/git-auth-mode.js.map +1 -0
  191. package/dist/cloud-workspace/runtime/git.d.ts +147 -0
  192. package/dist/cloud-workspace/runtime/git.d.ts.map +1 -0
  193. package/dist/cloud-workspace/runtime/git.js +128 -0
  194. package/dist/cloud-workspace/runtime/git.js.map +1 -0
  195. package/dist/cloud-workspace/runtime/handshake.d.ts +47 -0
  196. package/dist/cloud-workspace/runtime/handshake.d.ts.map +1 -0
  197. package/dist/cloud-workspace/runtime/handshake.js +31 -0
  198. package/dist/cloud-workspace/runtime/handshake.js.map +1 -0
  199. package/dist/cloud-workspace/runtime/index.d.ts +64 -0
  200. package/dist/cloud-workspace/runtime/index.d.ts.map +1 -0
  201. package/dist/cloud-workspace/runtime/index.js +64 -0
  202. package/dist/cloud-workspace/runtime/index.js.map +1 -0
  203. package/dist/cloud-workspace/runtime/library-attachments.d.ts +120 -0
  204. package/dist/cloud-workspace/runtime/library-attachments.d.ts.map +1 -0
  205. package/dist/cloud-workspace/runtime/library-attachments.js +75 -0
  206. package/dist/cloud-workspace/runtime/library-attachments.js.map +1 -0
  207. package/dist/cloud-workspace/runtime/mcp.d.ts +82 -0
  208. package/dist/cloud-workspace/runtime/mcp.d.ts.map +1 -0
  209. package/dist/cloud-workspace/runtime/mcp.js +48 -0
  210. package/dist/cloud-workspace/runtime/mcp.js.map +1 -0
  211. package/dist/cloud-workspace/runtime/native-history.d.ts +66 -0
  212. package/dist/cloud-workspace/runtime/native-history.d.ts.map +1 -0
  213. package/dist/cloud-workspace/runtime/native-history.js +132 -0
  214. package/dist/cloud-workspace/runtime/native-history.js.map +1 -0
  215. package/dist/cloud-workspace/runtime/operations.d.ts +374 -0
  216. package/dist/cloud-workspace/runtime/operations.d.ts.map +1 -0
  217. package/dist/cloud-workspace/runtime/operations.js +229 -0
  218. package/dist/cloud-workspace/runtime/operations.js.map +1 -0
  219. package/dist/cloud-workspace/runtime/parameters.d.ts +38 -0
  220. package/dist/cloud-workspace/runtime/parameters.d.ts.map +1 -0
  221. package/dist/cloud-workspace/runtime/parameters.js +75 -0
  222. package/dist/cloud-workspace/runtime/parameters.js.map +1 -0
  223. package/dist/cloud-workspace/runtime/permissions.d.ts +24 -0
  224. package/dist/cloud-workspace/runtime/permissions.d.ts.map +1 -0
  225. package/dist/cloud-workspace/runtime/permissions.js +19 -0
  226. package/dist/cloud-workspace/runtime/permissions.js.map +1 -0
  227. package/dist/cloud-workspace/runtime/platform-endpoints.d.ts +25 -0
  228. package/dist/cloud-workspace/runtime/platform-endpoints.d.ts.map +1 -0
  229. package/dist/cloud-workspace/runtime/platform-endpoints.js +37 -0
  230. package/dist/cloud-workspace/runtime/platform-endpoints.js.map +1 -0
  231. package/dist/cloud-workspace/runtime/previews.d.ts +59 -0
  232. package/dist/cloud-workspace/runtime/previews.d.ts.map +1 -0
  233. package/dist/cloud-workspace/runtime/previews.js +63 -0
  234. package/dist/cloud-workspace/runtime/previews.js.map +1 -0
  235. package/dist/cloud-workspace/runtime/project-native-skills.d.ts +40 -0
  236. package/dist/cloud-workspace/runtime/project-native-skills.d.ts.map +1 -0
  237. package/dist/cloud-workspace/runtime/project-native-skills.js +45 -0
  238. package/dist/cloud-workspace/runtime/project-native-skills.js.map +1 -0
  239. package/dist/cloud-workspace/runtime/protocol.d.ts +23 -0
  240. package/dist/cloud-workspace/runtime/protocol.d.ts.map +1 -0
  241. package/dist/cloud-workspace/runtime/protocol.js +30 -0
  242. package/dist/cloud-workspace/runtime/protocol.js.map +1 -0
  243. package/dist/cloud-workspace/runtime/remix-references.d.ts +197 -0
  244. package/dist/cloud-workspace/runtime/remix-references.d.ts.map +1 -0
  245. package/dist/cloud-workspace/runtime/remix-references.js +73 -0
  246. package/dist/cloud-workspace/runtime/remix-references.js.map +1 -0
  247. package/dist/cloud-workspace/runtime/resource-grant.d.ts +62 -0
  248. package/dist/cloud-workspace/runtime/resource-grant.d.ts.map +1 -0
  249. package/dist/cloud-workspace/runtime/resource-grant.js +87 -0
  250. package/dist/cloud-workspace/runtime/resource-grant.js.map +1 -0
  251. package/dist/cloud-workspace/runtime/self-contained-glb.d.ts +3 -0
  252. package/dist/cloud-workspace/runtime/self-contained-glb.d.ts.map +1 -0
  253. package/dist/cloud-workspace/runtime/self-contained-glb.js +67 -0
  254. package/dist/cloud-workspace/runtime/self-contained-glb.js.map +1 -0
  255. package/dist/cloud-workspace/runtime/session-restore.d.ts +31 -0
  256. package/dist/cloud-workspace/runtime/session-restore.d.ts.map +1 -0
  257. package/dist/cloud-workspace/runtime/session-restore.js +24 -0
  258. package/dist/cloud-workspace/runtime/session-restore.js.map +1 -0
  259. package/dist/cloud-workspace/runtime/skills.d.ts +39 -0
  260. package/dist/cloud-workspace/runtime/skills.d.ts.map +1 -0
  261. package/dist/cloud-workspace/runtime/skills.js +33 -0
  262. package/dist/cloud-workspace/runtime/skills.js.map +1 -0
  263. package/dist/cloud-workspace/runtime/terminal-session.d.ts +78 -0
  264. package/dist/cloud-workspace/runtime/terminal-session.d.ts.map +1 -0
  265. package/dist/cloud-workspace/runtime/terminal-session.js +178 -0
  266. package/dist/cloud-workspace/runtime/terminal-session.js.map +1 -0
  267. package/dist/cloud-workspace/runtime/terminals.d.ts +90 -0
  268. package/dist/cloud-workspace/runtime/terminals.d.ts.map +1 -0
  269. package/dist/cloud-workspace/runtime/terminals.js +111 -0
  270. package/dist/cloud-workspace/runtime/terminals.js.map +1 -0
  271. package/dist/cloud-workspace/runtime/turn-control.d.ts +27 -0
  272. package/dist/cloud-workspace/runtime/turn-control.d.ts.map +1 -0
  273. package/dist/cloud-workspace/runtime/turn-control.js +18 -0
  274. package/dist/cloud-workspace/runtime/turn-control.js.map +1 -0
  275. package/dist/cloud-workspace/runtime/variant-workspace.d.ts +221 -0
  276. package/dist/cloud-workspace/runtime/variant-workspace.d.ts.map +1 -0
  277. package/dist/cloud-workspace/runtime/variant-workspace.js +75 -0
  278. package/dist/cloud-workspace/runtime/variant-workspace.js.map +1 -0
  279. package/dist/cloud-workspace/runtime/workspace-binding.d.ts +219 -0
  280. package/dist/cloud-workspace/runtime/workspace-binding.d.ts.map +1 -0
  281. package/dist/cloud-workspace/runtime/workspace-binding.js +178 -0
  282. package/dist/cloud-workspace/runtime/workspace-binding.js.map +1 -0
  283. package/dist/cloud-workspace/runtime/workspace-directories.d.ts +44 -0
  284. package/dist/cloud-workspace/runtime/workspace-directories.d.ts.map +1 -0
  285. package/dist/cloud-workspace/runtime/workspace-directories.js +34 -0
  286. package/dist/cloud-workspace/runtime/workspace-directories.js.map +1 -0
  287. package/dist/cloud-workspace/runtime/workspace-models.d.ts +31 -0
  288. package/dist/cloud-workspace/runtime/workspace-models.d.ts.map +1 -0
  289. package/dist/cloud-workspace/runtime/workspace-models.js +63 -0
  290. package/dist/cloud-workspace/runtime/workspace-models.js.map +1 -0
  291. package/dist/cloud-workspace/runtime/workspace-notifications.d.ts +37 -0
  292. package/dist/cloud-workspace/runtime/workspace-notifications.d.ts.map +1 -0
  293. package/dist/cloud-workspace/runtime/workspace-notifications.js +90 -0
  294. package/dist/cloud-workspace/runtime/workspace-notifications.js.map +1 -0
  295. package/dist/cloud-workspace/runtime/workspace-ui.d.ts +151 -0
  296. package/dist/cloud-workspace/runtime/workspace-ui.d.ts.map +1 -0
  297. package/dist/cloud-workspace/runtime/workspace-ui.js +80 -0
  298. package/dist/cloud-workspace/runtime/workspace-ui.js.map +1 -0
  299. package/dist/database/operators.d.ts +2 -0
  300. package/dist/database/operators.d.ts.map +1 -0
  301. package/dist/database/operators.js +2 -0
  302. package/dist/database/operators.js.map +1 -0
  303. package/dist/database/postgres-adapter.js +1 -1
  304. package/dist/database/postgres-adapter.js.map +1 -1
  305. package/dist/database/schema.d.ts +1 -1
  306. package/dist/database/schema.js +1 -1
  307. package/dist/model-proxy/index.d.ts +26 -0
  308. package/dist/model-proxy/index.d.ts.map +1 -0
  309. package/dist/model-proxy/index.js +81 -0
  310. package/dist/model-proxy/index.js.map +1 -0
  311. package/dist/prefab/index.d.ts +0 -2
  312. package/dist/prefab/index.d.ts.map +1 -1
  313. package/dist/prefab/index.js +0 -2
  314. package/dist/prefab/index.js.map +1 -1
  315. package/dist/prefab/mime-type-list.d.ts +0 -1
  316. package/dist/prefab/mime-type-list.d.ts.map +1 -1
  317. package/dist/prefab/mime-type-list.js +1 -5
  318. package/dist/prefab/mime-type-list.js.map +1 -1
  319. package/dist/project-skills/bundle-archive.d.ts +21 -0
  320. package/dist/project-skills/bundle-archive.d.ts.map +1 -0
  321. package/dist/project-skills/bundle-archive.js +165 -0
  322. package/dist/project-skills/bundle-archive.js.map +1 -0
  323. package/dist/project-skills/bundle-path.d.ts +3 -0
  324. package/dist/project-skills/bundle-path.d.ts.map +1 -0
  325. package/dist/project-skills/bundle-path.js +17 -0
  326. package/dist/project-skills/bundle-path.js.map +1 -0
  327. package/dist/project-skills/evidence.d.ts +15 -0
  328. package/dist/project-skills/evidence.d.ts.map +1 -0
  329. package/dist/project-skills/evidence.js +33 -0
  330. package/dist/project-skills/evidence.js.map +1 -0
  331. package/dist/project-skills/index.d.ts +7 -0
  332. package/dist/project-skills/index.d.ts.map +1 -0
  333. package/dist/project-skills/index.js +7 -0
  334. package/dist/project-skills/index.js.map +1 -0
  335. package/dist/project-skills/inventory.d.ts +23 -0
  336. package/dist/project-skills/inventory.d.ts.map +1 -0
  337. package/dist/project-skills/inventory.js +150 -0
  338. package/dist/project-skills/inventory.js.map +1 -0
  339. package/dist/project-skills/local-snapshot.d.ts +12 -0
  340. package/dist/project-skills/local-snapshot.d.ts.map +1 -0
  341. package/dist/project-skills/local-snapshot.js +66 -0
  342. package/dist/project-skills/local-snapshot.js.map +1 -0
  343. package/dist/project-skills/protocol.d.ts +31 -0
  344. package/dist/project-skills/protocol.d.ts.map +1 -0
  345. package/dist/project-skills/protocol.js +197 -0
  346. package/dist/project-skills/protocol.js.map +1 -0
  347. package/dist/project-skills/runtime-plugin.d.ts +66 -0
  348. package/dist/project-skills/runtime-plugin.d.ts.map +1 -0
  349. package/dist/project-skills/runtime-plugin.js +102 -0
  350. package/dist/project-skills/runtime-plugin.js.map +1 -0
  351. package/dist/project-skills/types.d.ts +63 -0
  352. package/dist/project-skills/types.d.ts.map +1 -0
  353. package/dist/project-skills/types.js +13 -0
  354. package/dist/project-skills/types.js.map +1 -0
  355. package/dist/recommend/types.d.ts +1 -1
  356. package/dist/recommend/types.js +1 -1
  357. package/dist/remix/auto-name.d.ts +24 -0
  358. package/dist/remix/auto-name.d.ts.map +1 -0
  359. package/dist/remix/auto-name.js +40 -0
  360. package/dist/remix/auto-name.js.map +1 -0
  361. package/dist/remix/index.d.ts +2 -0
  362. package/dist/remix/index.d.ts.map +1 -0
  363. package/dist/remix/index.js +2 -0
  364. package/dist/remix/index.js.map +1 -0
  365. package/dist/skill-evaluation.d.ts +152 -0
  366. package/dist/skill-evaluation.d.ts.map +1 -0
  367. package/dist/skill-evaluation.js +14 -0
  368. package/dist/skill-evaluation.js.map +1 -0
  369. package/dist/storage/cos.d.ts +11 -0
  370. package/dist/storage/cos.d.ts.map +1 -1
  371. package/dist/storage/cos.js +29 -0
  372. package/dist/storage/cos.js.map +1 -1
  373. package/package.json +33 -1
  374. package/dist/prefab/image-background.d.ts +0 -10
  375. package/dist/prefab/image-background.d.ts.map +0 -1
  376. package/dist/prefab/image-background.js +0 -19
  377. package/dist/prefab/image-background.js.map +0 -1
  378. package/dist/prefab/image-generation-constraints.d.ts +0 -72
  379. package/dist/prefab/image-generation-constraints.d.ts.map +0 -1
  380. package/dist/prefab/image-generation-constraints.js +0 -112
  381. package/dist/prefab/image-generation-constraints.js.map +0 -1
@@ -0,0 +1,31 @@
1
+ import { type ProjectSkillDeclaration, type ProjectSkillFile, type ProjectSkillLockEntry, type ProjectSkillsLockV3, type ProjectSkillSurface } from './types.js';
2
+ export declare function isProjectRelativePath(value: string): boolean;
3
+ /** Locale-independent serialization, also used for server-side revalidation. */
4
+ export declare function canonicalProjectSkillsJson(value: unknown): string;
5
+ export declare function projectSkillsDigest(value: unknown): string;
6
+ export declare function parseProjectSkillDeclaration(value: unknown): ProjectSkillDeclaration;
7
+ export declare function parseProjectSkillsLock(value: unknown): ProjectSkillsLockV3;
8
+ export declare function declarationDigest(declaration: ProjectSkillDeclaration): string;
9
+ /** Hash raw bytes and relative filenames, not a Git commit or normalized artifact. */
10
+ export declare function sourceTreeDigest(files: readonly ProjectSkillFile[]): string;
11
+ export declare function sourceRevision(files: readonly ProjectSkillFile[]): string;
12
+ export declare function dependencyDigest(entries: readonly ProjectSkillLockEntry[], keys: readonly string[]): string;
13
+ /** Validates disabled entries too; an incomplete snapshot must never be adopted. */
14
+ export declare function validateProjectSkillsSnapshot(declarationInput: unknown, lockInput: unknown): {
15
+ declaration: ProjectSkillDeclaration;
16
+ lock: ProjectSkillsLockV3;
17
+ };
18
+ export declare function effectiveProjectSkills(declarationInput: unknown, lockInput: unknown, surface: ProjectSkillSurface, deniedRefs?: ReadonlySet<string>): ProjectSkillLockEntry[];
19
+ /** Configuration change retains every exact revision, including disabled entries. */
20
+ export declare function setProjectSkillEnabled(declarationInput: unknown, lockInput: unknown, entryKey: string, enabled: boolean): {
21
+ declaration: {
22
+ entries: import("./types.js").ProjectSkillEntry[];
23
+ schemaVersion: 1;
24
+ };
25
+ lock: {
26
+ declarationHash: string;
27
+ lockVersion: 3;
28
+ entries: ProjectSkillLockEntry[];
29
+ };
30
+ };
31
+ //# sourceMappingURL=protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/project-skills/protocol.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,uBAAuB,EAAE,KAAK,gBAAgB,EACnD,KAAK,qBAAqB,EAAE,KAAK,mBAAmB,EAAE,KAAK,mBAAmB,EAC/E,MAAM,YAAY,CAAC;AAOpB,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAI5D;AA6BD,gFAAgF;AAChF,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAYjE;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAE1D;AAWD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,CAOpF;AACD,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAK1E;AACD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,uBAAuB,GAAG,MAAM,CAE9E;AAED,sFAAsF;AACtF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAa3E;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAE,SAAS,gBAAgB,EAAE,GAAG,MAAM,CAEzE;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAQ3G;AAED,oFAAoF;AACpF,wBAAgB,6BAA6B,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,GAAG;IAC5F,WAAW,EAAE,uBAAuB,CAAC;IAAC,IAAI,EAAE,mBAAmB,CAAC;CACjE,CAmCA;AAED,wBAAgB,sBAAsB,CACpC,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,EAC3E,UAAU,GAAE,WAAW,CAAC,MAAM,CAAa,GAC1C,qBAAqB,EAAE,CAmBzB;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,gBAAgB,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;;;;;;;;;;EAKvH"}
@@ -0,0 +1,197 @@
1
+ import { createHash } from 'node:crypto';
2
+ import { z } from 'zod';
3
+ import { PROJECT_SKILL_SURFACES, ProjectSkillsError, } from './types.js';
4
+ const hash = z.string().regex(/^[a-f0-9]{64}$/);
5
+ const ref = z.string().regex(/^[a-z0-9][a-z0-9_-]*\/[a-z0-9][a-z0-9_-]*$/).max(257);
6
+ const version = z.string().regex(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)$/).max(32);
7
+ const key = z.string().regex(/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/).max(160);
8
+ export function isProjectRelativePath(value) {
9
+ return value.length > 0 && value.length <= 1024 && value.trim() === value &&
10
+ !/[\\\x00-\x1f\x7f:*?<>|]/.test(value) &&
11
+ value.split('/').every((part) => part !== '' && part !== '.' && part !== '..' && part !== '.git');
12
+ }
13
+ const path = z.string().refine(isProjectRelativePath, 'Expected a safe project-relative path');
14
+ const declarationSchema = z.strictObject({
15
+ schemaVersion: z.literal(1),
16
+ entries: z.array(z.strictObject({
17
+ entryKey: key,
18
+ source: z.discriminatedUnion('kind', [
19
+ z.strictObject({ kind: z.literal('registry'), skillRef: ref, version }),
20
+ z.strictObject({ kind: z.literal('repository'), root: path, skillRef: ref.optional() }),
21
+ ]),
22
+ enabled: z.boolean(),
23
+ surface: z.enum(PROJECT_SKILL_SURFACES),
24
+ projectFiles: z.array(path).max(512).optional(),
25
+ })).max(512),
26
+ });
27
+ const lockSchema = z.strictObject({
28
+ lockVersion: z.literal(3), declarationHash: hash,
29
+ entries: z.array(z.strictObject({
30
+ entryKey: key,
31
+ revision: z.discriminatedUnion('kind', [
32
+ z.strictObject({ kind: z.literal('release'), skillRef: ref, version, artifactHash: hash }),
33
+ z.strictObject({ kind: z.literal('source'), skillRef: ref,
34
+ sourceRevision: z.string().regex(/^src-v1-sha256:[a-f0-9]{64}$/), artifactHash: hash }),
35
+ ]),
36
+ sourceTreeHash: hash.optional(), dependencyLockHash: hash,
37
+ dependencies: z.array(key).max(512),
38
+ })).max(512),
39
+ });
40
+ /** Locale-independent serialization, also used for server-side revalidation. */
41
+ export function canonicalProjectSkillsJson(value) {
42
+ if (Array.isArray(value))
43
+ return `[${value.map(canonicalProjectSkillsJson).join(',')}]`;
44
+ if (value !== null && typeof value === 'object') {
45
+ return `{${Object.entries(value).filter(([, item]) => item !== undefined)
46
+ .sort(([a], [b]) => a < b ? -1 : a > b ? 1 : 0)
47
+ .map(([name, item]) => `${JSON.stringify(name)}:${canonicalProjectSkillsJson(item)}`).join(',')}}`;
48
+ }
49
+ const result = JSON.stringify(value);
50
+ if (result === undefined || (typeof value === 'number' && !Number.isFinite(value))) {
51
+ throw new ProjectSkillsError('invalid_json', 'Non-JSON configuration value');
52
+ }
53
+ return result;
54
+ }
55
+ export function projectSkillsDigest(value) {
56
+ return createHash('sha256').update(canonicalProjectSkillsJson(value)).digest('hex');
57
+ }
58
+ function parseJson(value) {
59
+ if (typeof value !== 'string')
60
+ return value;
61
+ try {
62
+ return JSON.parse(value);
63
+ }
64
+ catch {
65
+ throw new ProjectSkillsError('invalid_json', 'Malformed project skills JSON');
66
+ }
67
+ }
68
+ function uniqueKeys(entries) {
69
+ if (new Set(entries.map((entry) => entry.entryKey)).size !== entries.length) {
70
+ throw new ProjectSkillsError('duplicate_entry', 'Duplicate project skill entry key');
71
+ }
72
+ }
73
+ export function parseProjectSkillDeclaration(value) {
74
+ const result = declarationSchema.safeParse(parseJson(value));
75
+ if (!result.success)
76
+ throw new ProjectSkillsError('invalid_declaration', result.error.message);
77
+ uniqueKeys(result.data.entries);
78
+ const roots = result.data.entries.flatMap((entry) => entry.source.kind === 'repository' ? [entry.source.root] : []);
79
+ if (new Set(roots).size !== roots.length)
80
+ throw new ProjectSkillsError('duplicate_source', 'Repository source declared twice');
81
+ return result.data;
82
+ }
83
+ export function parseProjectSkillsLock(value) {
84
+ const result = lockSchema.safeParse(parseJson(value));
85
+ if (!result.success)
86
+ throw new ProjectSkillsError('invalid_lock', result.error.message);
87
+ uniqueKeys(result.data.entries);
88
+ return result.data;
89
+ }
90
+ export function declarationDigest(declaration) {
91
+ return projectSkillsDigest(parseProjectSkillDeclaration(declaration));
92
+ }
93
+ /** Hash raw bytes and relative filenames, not a Git commit or normalized artifact. */
94
+ export function sourceTreeDigest(files) {
95
+ const sorted = [...files].sort((a, b) => a.path < b.path ? -1 : a.path > b.path ? 1 : 0);
96
+ const seen = new Set();
97
+ const digest = createHash('sha256').update('playcraft-source-tree-v1\0');
98
+ for (const file of sorted) {
99
+ if (!isProjectRelativePath(file.path) || seen.has(file.path)) {
100
+ throw new ProjectSkillsError('invalid_source_path', `Invalid or duplicate source path: ${file.path}`);
101
+ }
102
+ seen.add(file.path);
103
+ const name = Buffer.from(file.path);
104
+ digest.update(`${name.length}:`).update(name).update(`${file.content.byteLength}:`).update(file.content);
105
+ }
106
+ return digest.digest('hex');
107
+ }
108
+ export function sourceRevision(files) {
109
+ return `src-v1-sha256:${sourceTreeDigest(files)}`;
110
+ }
111
+ export function dependencyDigest(entries, keys) {
112
+ const byKey = new Map(entries.map((entry) => [entry.entryKey, entry]));
113
+ if (new Set(keys).size !== keys.length)
114
+ throw new ProjectSkillsError('duplicate_dependency', 'Duplicate dependency');
115
+ return projectSkillsDigest([...keys].sort().map((entryKey) => {
116
+ const entry = byKey.get(entryKey);
117
+ if (!entry)
118
+ throw new ProjectSkillsError('missing_dependency', `Missing dependency ${entryKey}`);
119
+ return { entryKey, revision: entry.revision, dependencies: [...entry.dependencies].sort() };
120
+ }));
121
+ }
122
+ /** Validates disabled entries too; an incomplete snapshot must never be adopted. */
123
+ export function validateProjectSkillsSnapshot(declarationInput, lockInput) {
124
+ const declaration = parseProjectSkillDeclaration(declarationInput);
125
+ const lock = parseProjectSkillsLock(lockInput);
126
+ if (lock.declarationHash !== declarationDigest(declaration)) {
127
+ throw new ProjectSkillsError('stale_lock', 'Declaration and lock belong to different revisions');
128
+ }
129
+ const byKey = new Map(lock.entries.map((entry) => [entry.entryKey, entry]));
130
+ if (byKey.size !== declaration.entries.length)
131
+ throw new ProjectSkillsError('incomplete_lock', 'Lock must contain every declaration entry');
132
+ for (const item of declaration.entries) {
133
+ const locked = byKey.get(item.entryKey);
134
+ if (!locked)
135
+ throw new ProjectSkillsError('incomplete_lock', `Missing ${item.entryKey}`);
136
+ if (item.source.kind === 'registry' && (locked.revision.kind !== 'release' ||
137
+ locked.revision.skillRef !== item.source.skillRef || locked.revision.version !== item.source.version)) {
138
+ throw new ProjectSkillsError('revision_mismatch', `Registry revision differs: ${item.entryKey}`);
139
+ }
140
+ if (item.source.kind === 'repository' && (locked.revision.kind !== 'source' || !locked.sourceTreeHash ||
141
+ locked.revision.sourceRevision !== `src-v1-sha256:${locked.sourceTreeHash}` ||
142
+ (item.source.skillRef && item.source.skillRef !== locked.revision.skillRef))) {
143
+ throw new ProjectSkillsError('revision_mismatch', `Repository revision differs: ${item.entryKey}`);
144
+ }
145
+ if (dependencyDigest(lock.entries, locked.dependencies) !== locked.dependencyLockHash) {
146
+ throw new ProjectSkillsError('dependency_mismatch', `Dependencies changed: ${item.entryKey}`);
147
+ }
148
+ }
149
+ const visited = new Set();
150
+ const visiting = new Set();
151
+ const visit = (entryKey) => {
152
+ if (visiting.has(entryKey))
153
+ throw new ProjectSkillsError('dependency_cycle', `Dependency cycle at ${entryKey}`);
154
+ if (visited.has(entryKey))
155
+ return;
156
+ visiting.add(entryKey);
157
+ for (const child of byKey.get(entryKey).dependencies)
158
+ visit(child);
159
+ visiting.delete(entryKey);
160
+ visited.add(entryKey);
161
+ };
162
+ for (const entry of lock.entries)
163
+ visit(entry.entryKey);
164
+ return { declaration, lock };
165
+ }
166
+ export function effectiveProjectSkills(declarationInput, lockInput, surface, deniedRefs = new Set()) {
167
+ const { declaration, lock } = validateProjectSkillsSnapshot(declarationInput, lockInput);
168
+ const declarations = new Map(declaration.entries.map((entry) => [entry.entryKey, entry]));
169
+ const byKey = new Map(lock.entries.map((entry) => [entry.entryKey, entry]));
170
+ const selected = new Set();
171
+ const visit = (entryKey) => {
172
+ if (selected.has(entryKey))
173
+ return;
174
+ const item = declarations.get(entryKey);
175
+ const locked = byKey.get(entryKey);
176
+ if (!item.enabled || item.surface !== surface || deniedRefs.has(locked.revision.skillRef)) {
177
+ throw new ProjectSkillsError('dependency_disabled', `Required skill is unavailable: ${entryKey}`);
178
+ }
179
+ for (const child of locked.dependencies)
180
+ visit(child);
181
+ selected.add(entryKey);
182
+ };
183
+ for (const item of declaration.entries) {
184
+ if (item.enabled && item.surface === surface && !deniedRefs.has(byKey.get(item.entryKey).revision.skillRef))
185
+ visit(item.entryKey);
186
+ }
187
+ return [...selected].map((entryKey) => byKey.get(entryKey));
188
+ }
189
+ /** Configuration change retains every exact revision, including disabled entries. */
190
+ export function setProjectSkillEnabled(declarationInput, lockInput, entryKey, enabled) {
191
+ const { declaration, lock } = validateProjectSkillsSnapshot(declarationInput, lockInput);
192
+ if (!declaration.entries.some((item) => item.entryKey === entryKey))
193
+ throw new ProjectSkillsError('unknown_entry', entryKey);
194
+ const next = { ...declaration, entries: declaration.entries.map((item) => item.entryKey === entryKey ? { ...item, enabled } : item) };
195
+ return { declaration: next, lock: { ...lock, declarationHash: declarationDigest(next) } };
196
+ }
197
+ //# sourceMappingURL=protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/project-skills/protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { z } from 'zod';
2
+ type NativeClient = {
3
+ session: {
4
+ get: (input: {
5
+ path: {
6
+ id: string;
7
+ };
8
+ }) => Promise<{
9
+ data?: {
10
+ id: string;
11
+ parentID?: string;
12
+ };
13
+ }>;
14
+ };
15
+ };
16
+ /**
17
+ * Bundled by the supervisor, outside the writable project. The supervisor owns
18
+ * both this file and the manifest. Native directory discovery is never used here.
19
+ */
20
+ export default function managedSkillsPlugin(input?: {
21
+ client?: NativeClient;
22
+ }): Promise<{
23
+ tool: {
24
+ skill: {
25
+ description: string;
26
+ args: {
27
+ name: z.ZodString;
28
+ };
29
+ execute(args: {
30
+ name: string;
31
+ }, context: {
32
+ sessionID: string;
33
+ metadata: (value: unknown) => void;
34
+ }): Promise<{
35
+ title: string;
36
+ output: string;
37
+ metadata: {
38
+ playcraftSkill: {
39
+ schemaVersion: number;
40
+ runtimeId: string;
41
+ lockId: string;
42
+ skillVersionId: string;
43
+ artifactHash: string;
44
+ skillRef: string;
45
+ nativeSessionId: string;
46
+ rootNativeSessionId: string;
47
+ bodyHash: string;
48
+ packageRoot: string;
49
+ };
50
+ };
51
+ }>;
52
+ };
53
+ };
54
+ 'tool.definition': (input: {
55
+ toolID: string;
56
+ }, output: {
57
+ description: string;
58
+ }) => Promise<void>;
59
+ 'experimental.chat.system.transform': (input: {
60
+ sessionID?: string;
61
+ }, output: {
62
+ system: string[];
63
+ }) => Promise<void>;
64
+ }>;
65
+ export {};
66
+ //# sourceMappingURL=runtime-plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-plugin.d.ts","sourceRoot":"","sources":["../../src/project-skills/runtime-plugin.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAYxB,KAAK,YAAY,GAAG;IAAE,OAAO,EAAE;QAAE,GAAG,EAAE,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,KAAK,OAAO,CAAC;YAAE,IAAI,CAAC,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAC;gBAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAA;KAAE,CAAA;CAAE,CAAC;AAGrI;;;GAGG;AACH,wBAA8B,mBAAmB,CAAC,KAAK,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE;;;;;;;0BA+CvD;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,WAAW;gBAAE,SAAS,EAAE,MAAM,CAAC;gBAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;aAAE;;;;;;;;;;;;;;;;;;;;+BAiB3E;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,UAAU;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE;kDAGhC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,UAAU;QAAE,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;GAM3G"}
@@ -0,0 +1,102 @@
1
+ import { readFile } from 'node:fs/promises';
2
+ import { createHash } from 'node:crypto';
3
+ import { join, isAbsolute, dirname } from 'node:path';
4
+ import { z } from 'zod';
5
+ /**
6
+ * Bundled by the supervisor, outside the writable project. The supervisor owns
7
+ * both this file and the manifest. Native directory discovery is never used here.
8
+ */
9
+ export default async function managedSkillsPlugin(input) {
10
+ const file = process.env.PLAYCRAFT_SKILL_RUNTIME_FILE;
11
+ const root = process.env.PLAYCRAFT_SKILL_RUNTIME_ROOT;
12
+ if ((!file && !root) || (file && root))
13
+ throw new Error('Exactly one managed skill runtime location is required');
14
+ const sessions = new Map();
15
+ async function load(filePath, sessionId) {
16
+ const manifest = JSON.parse(await readFile(filePath, 'utf8'));
17
+ if (manifest.schemaVersion !== 1 || !manifest.runtimeId || !manifest.lockId || !Array.isArray(manifest.entries)) {
18
+ throw new Error('Invalid managed skill runtime manifest');
19
+ }
20
+ if (sessionId && manifest.nativeSessionId !== sessionId)
21
+ throw new Error('Managed skill session mismatch');
22
+ const entries = new Map();
23
+ for (const entry of manifest.entries) {
24
+ if (!entry.name || entries.has(entry.name) || !entry.revisionId || !entry.artifactHash || !entry.skillRef || !isAbsolute(entry.bodyFile)) {
25
+ throw new Error('Invalid or duplicate managed skill');
26
+ }
27
+ const body = await readFile(entry.bodyFile);
28
+ if (createHash('sha256').update(body).digest('hex') !== entry.bodyHash)
29
+ throw new Error('Managed skill body changed');
30
+ entries.set(entry.name, { entry, body: body.toString('utf8') });
31
+ }
32
+ return { manifest, entries };
33
+ }
34
+ const fixed = file ? await load(file) : undefined;
35
+ async function forSession(sessionId, ancestors = new Set()) {
36
+ if (fixed)
37
+ return fixed;
38
+ if (!/^ses_[A-Za-z0-9_-]+$/.test(sessionId) || ancestors.has(sessionId) || ancestors.size >= 32)
39
+ throw new Error('Invalid managed skill session');
40
+ const cached = sessions.get(sessionId);
41
+ if (cached)
42
+ return cached;
43
+ const pending = (async () => {
44
+ try {
45
+ return await load(join(root, 'sessions', `${sessionId}.json`), sessionId);
46
+ }
47
+ catch (error) {
48
+ if (error.code !== 'ENOENT')
49
+ throw error;
50
+ // Only native ancestry can inherit a lock. No branch/latest fallback.
51
+ const session = await input?.client?.session.get({ path: { id: sessionId } });
52
+ if (session?.data?.id !== sessionId || !session.data.parentID)
53
+ throw new Error('Managed skill session has not been prepared');
54
+ return forSession(session.data.parentID, new Set([...ancestors, sessionId]));
55
+ }
56
+ })();
57
+ sessions.set(sessionId, pending);
58
+ try {
59
+ return await pending;
60
+ }
61
+ catch (error) {
62
+ sessions.delete(sessionId);
63
+ throw error;
64
+ }
65
+ }
66
+ const description = 'Load an enabled skill from the immutable lock for this session. Use an exact name from the available skills section.';
67
+ return {
68
+ tool: {
69
+ skill: {
70
+ description,
71
+ args: { name: z.string().describe('Exact name from the available skills list') },
72
+ async execute(args, context) {
73
+ const { manifest, entries } = await forSession(context.sessionID);
74
+ const selected = entries.get(args.name);
75
+ if (!selected)
76
+ throw new Error(`Skill is not enabled in this run: ${args.name}`);
77
+ return { title: selected.entry.skillRef, output: selected.body, metadata: {
78
+ playcraftSkill: {
79
+ schemaVersion: 1, runtimeId: manifest.runtimeId, lockId: manifest.lockId,
80
+ skillVersionId: selected.entry.revisionId, artifactHash: selected.entry.artifactHash,
81
+ skillRef: selected.entry.skillRef, nativeSessionId: context.sessionID,
82
+ rootNativeSessionId: manifest.nativeSessionId ?? context.sessionID,
83
+ bodyHash: selected.entry.bodyHash, packageRoot: dirname(selected.entry.bodyFile),
84
+ },
85
+ } };
86
+ },
87
+ },
88
+ },
89
+ // Limit the model-facing definition even if the runtime supplies a native one.
90
+ 'tool.definition': async (input, output) => {
91
+ if (input.toolID === 'skill')
92
+ output.description = description;
93
+ },
94
+ 'experimental.chat.system.transform': async (input, output) => {
95
+ if (!input.sessionID)
96
+ return;
97
+ const { manifest } = await forSession(input.sessionID);
98
+ output.system.push(`Available project skills for this session:\n${manifest.entries.map((entry) => `${entry.name}: ${entry.description} (package: ${dirname(entry.bodyFile)}; resolve skill resources relative to this directory)`).join('\n') || '(none)'}`);
99
+ },
100
+ };
101
+ }
102
+ //# sourceMappingURL=runtime-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime-plugin.js","sourceRoot":"","sources":["../../src/project-skills/runtime-plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /** Portable project configuration. Identifiers in these files never grant access. */
2
+ export declare const PROJECT_SKILLS_DECLARATION_PATH = ".playcraft/skills.json";
3
+ export declare const PROJECT_SKILLS_LOCK_PATH = ".playcraft/skills.lock.json";
4
+ export declare const PROJECT_SKILL_SURFACES: readonly ["portal-agent", "sandbox-agent", "build-time"];
5
+ export type ProjectSkillSurface = (typeof PROJECT_SKILL_SURFACES)[number];
6
+ export type ProjectSkillEntry = {
7
+ entryKey: string;
8
+ source: {
9
+ kind: 'registry';
10
+ skillRef: string;
11
+ version: string;
12
+ } | {
13
+ kind: 'repository';
14
+ root: string;
15
+ skillRef?: string;
16
+ };
17
+ enabled: boolean;
18
+ surface: ProjectSkillSurface;
19
+ projectFiles?: string[];
20
+ };
21
+ export type ProjectSkillDeclaration = {
22
+ schemaVersion: 1;
23
+ entries: ProjectSkillEntry[];
24
+ };
25
+ export type LockedSkillRevision = {
26
+ skillRef: string;
27
+ artifactHash: string;
28
+ } & ({
29
+ kind: 'release';
30
+ version: string;
31
+ } | {
32
+ kind: 'source';
33
+ sourceRevision: string;
34
+ });
35
+ export type ProjectSkillLockEntry = {
36
+ entryKey: string;
37
+ revision: LockedSkillRevision;
38
+ sourceTreeHash?: string;
39
+ dependencyLockHash: string;
40
+ dependencies: string[];
41
+ };
42
+ export type ProjectSkillsLockV3 = {
43
+ lockVersion: 3;
44
+ declarationHash: string;
45
+ entries: ProjectSkillLockEntry[];
46
+ };
47
+ export type ProjectSkillFile = {
48
+ path: string;
49
+ content: Uint8Array;
50
+ };
51
+ export type SkillAdoptionPhase = 'queued' | 'inspecting' | 'registering' | 'writing' | 'verifying' | 'completed' | 'blocked' | 'failed' | 'cancelled';
52
+ export type ProjectSkillCapability = 'pending' | 'needs_attention' | 'ready' | 'stale';
53
+ export type ProjectSkillIssue = {
54
+ code: string;
55
+ path?: string;
56
+ entryKey?: string;
57
+ detail: string;
58
+ };
59
+ export declare class ProjectSkillsError extends Error {
60
+ readonly code: string;
61
+ constructor(code: string, message: string);
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/project-skills/types.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,eAAO,MAAM,+BAA+B,2BAA2B,CAAC;AACxE,eAAO,MAAM,wBAAwB,gCAAgC,CAAC;AACtE,eAAO,MAAM,sBAAsB,0DAA2D,CAAC;AAC/F,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EACF;QAAE,IAAI,EAAE,UAAU,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GACvD;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,mBAAmB,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB,CAAC;AACF,MAAM,MAAM,uBAAuB,GAAG;IAAE,aAAa,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAAE,CAAC;AACzF,MAAM,MAAM,mBAAmB,GAAG;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;CACtB,GAAG,CACA;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAC7C,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAChC,WAAW,EAAE,CAAC,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,qBAAqB,EAAE,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,CAAC;AACrE,MAAM,MAAM,kBAAkB,GAC1B,QAAQ,GAAG,YAAY,GAAG,aAAa,GAAG,SAAS,GAAG,WAAW,GACjE,WAAW,GAAG,SAAS,GAAG,QAAQ,GAAG,WAAW,CAAC;AACrD,MAAM,MAAM,sBAAsB,GAAG,SAAS,GAAG,iBAAiB,GAAG,OAAO,GAAG,OAAO,CAAC;AACvF,MAAM,MAAM,iBAAiB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnG,qBAAa,kBAAmB,SAAQ,KAAK;aACf,IAAI,EAAE,MAAM;gBAAZ,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAI1D"}
@@ -0,0 +1,13 @@
1
+ /** Portable project configuration. Identifiers in these files never grant access. */
2
+ export const PROJECT_SKILLS_DECLARATION_PATH = '.playcraft/skills.json';
3
+ export const PROJECT_SKILLS_LOCK_PATH = '.playcraft/skills.lock.json';
4
+ export const PROJECT_SKILL_SURFACES = ['portal-agent', 'sandbox-agent', 'build-time'];
5
+ export class ProjectSkillsError extends Error {
6
+ code;
7
+ constructor(code, message) {
8
+ super(message);
9
+ this.code = code;
10
+ this.name = 'ProjectSkillsError';
11
+ }
12
+ }
13
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/project-skills/types.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,MAAM,CAAC,MAAM,+BAA+B,GAAG,wBAAwB,CAAC;AACxE,MAAM,CAAC,MAAM,wBAAwB,GAAG,6BAA6B,CAAC;AACtE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,cAAc,EAAE,eAAe,EAAE,YAAY,CAAU,CAAC;AAuC/F,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IACf;IAA5B,YAA4B,IAAY,EAAE,OAAe;QACvD,KAAK,CAAC,OAAO,CAAC,CAAC;QADW,SAAI,GAAJ,IAAI,CAAQ;QAEtC,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;CACF"}
@@ -5,7 +5,7 @@
5
5
  * 作为前端 / 后端 / CLI 三方共享的唯一定义来源。
6
6
  *
7
7
  * 任何字段调整必须同步评审三个调用方:
8
- * - packages/backend/src/features/recommend/*
8
+ * - packages/backend-business-server/src/features/recommend/*
9
9
  * - packages/frontend/src/app/(dashboard)/recommend/*
10
10
  * - packages/cli/src/commands/recommend.ts
11
11
  */
@@ -5,7 +5,7 @@
5
5
  * 作为前端 / 后端 / CLI 三方共享的唯一定义来源。
6
6
  *
7
7
  * 任何字段调整必须同步评审三个调用方:
8
- * - packages/backend/src/features/recommend/*
8
+ * - packages/backend-business-server/src/features/recommend/*
9
9
  * - packages/frontend/src/app/(dashboard)/recommend/*
10
10
  * - packages/cli/src/commands/recommend.ts
11
11
  */
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Remix 分支名后缀:{slug}-{YYYYMMDD}-{随机串}。
3
+ * 完整 git ref 由 generateRemixBranchName 加上 remix/ 前缀。
4
+ * slug 只保留 a-z0-9-,避免非 ASCII 进入 git ref 后被 percent-encode。
5
+ */
6
+ /** remix_metadata.copy_purpose 的应用层取值。该列没有数据库 check 约束。 */
7
+ export declare const WORKSPACE_FORK_COPY_PURPOSE = "workspace_fork";
8
+ export type AutoRemixNameOptions = {
9
+ now?: Date;
10
+ /** 测试注入。缺省取 crypto.randomUUID 前 8 位。 */
11
+ unique?: string;
12
+ };
13
+ export declare function generateAutoRemixName(displayName: string, options?: AutoRemixNameOptions): string;
14
+ export declare function generateRemixBranchName(displayName: string, options?: AutoRemixNameOptions): string;
15
+ export type WorkspaceForkNameSource = {
16
+ /** 主干取项目名;Remix 取源分支名,并去掉一个前导 remix/。 */
17
+ targetKind: 'main' | 'remix';
18
+ sourceBranchName: string;
19
+ projectName: string;
20
+ };
21
+ /** 工作空间 fork 的 slug 原料。显示名入口不要走这里。 */
22
+ export declare function workspaceForkSlugSource(source: WorkspaceForkNameSource): string;
23
+ export declare function generateWorkspaceForkBranchName(source: WorkspaceForkNameSource, options?: AutoRemixNameOptions): string;
24
+ //# sourceMappingURL=auto-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-name.d.ts","sourceRoot":"","sources":["../../src/remix/auto-name.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2DAA2D;AAC3D,eAAO,MAAM,2BAA2B,mBAAmB,CAAC;AAE5D,MAAM,MAAM,oBAAoB,GAAG;IACjC,GAAG,CAAC,EAAE,IAAI,CAAC;IACX,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAejG;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,oBAAoB,GAAG,MAAM,CAEnG;AAID,MAAM,MAAM,uBAAuB,GAAG;IACpC,yCAAyC;IACzC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,sCAAsC;AACtC,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,MAAM,CAM/E;AAED,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,uBAAuB,EAC/B,OAAO,CAAC,EAAE,oBAAoB,GAC7B,MAAM,CAER"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Remix 分支名后缀:{slug}-{YYYYMMDD}-{随机串}。
3
+ * 完整 git ref 由 generateRemixBranchName 加上 remix/ 前缀。
4
+ * slug 只保留 a-z0-9-,避免非 ASCII 进入 git ref 后被 percent-encode。
5
+ */
6
+ /** remix_metadata.copy_purpose 的应用层取值。该列没有数据库 check 约束。 */
7
+ export const WORKSPACE_FORK_COPY_PURPOSE = 'workspace_fork';
8
+ export function generateAutoRemixName(displayName, options) {
9
+ const slug = displayName
10
+ .trim()
11
+ .toLowerCase()
12
+ .replace(/\s+/g, '-')
13
+ .replace(/[^a-z0-9-]/g, '')
14
+ .replace(/-+/g, '-')
15
+ .replace(/^-|-$/g, '') || 'remix';
16
+ const date = options?.now ?? new Date();
17
+ const yyyymmdd = `${date.getFullYear()}${String(date.getMonth() + 1).padStart(2, '0')}${String(date.getDate()).padStart(2, '0')}`;
18
+ const unique = options?.unique
19
+ ?? (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function'
20
+ ? crypto.randomUUID().slice(0, 8)
21
+ : Date.now().toString(36).slice(-6));
22
+ return `${slug}-${yyyymmdd}-${unique}`;
23
+ }
24
+ export function generateRemixBranchName(displayName, options) {
25
+ return `remix/${generateAutoRemixName(displayName, options)}`;
26
+ }
27
+ const REMIX_BRANCH_PREFIX = 'remix/';
28
+ /** 工作空间 fork 的 slug 原料。显示名入口不要走这里。 */
29
+ export function workspaceForkSlugSource(source) {
30
+ if (source.targetKind === 'main')
31
+ return source.projectName;
32
+ const branch = source.sourceBranchName.trim();
33
+ return branch.startsWith(REMIX_BRANCH_PREFIX)
34
+ ? branch.slice(REMIX_BRANCH_PREFIX.length)
35
+ : branch;
36
+ }
37
+ export function generateWorkspaceForkBranchName(source, options) {
38
+ return generateRemixBranchName(workspaceForkSlugSource(source), options);
39
+ }
40
+ //# sourceMappingURL=auto-name.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-name.js","sourceRoot":"","sources":["../../src/remix/auto-name.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,2DAA2D;AAC3D,MAAM,CAAC,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AAQ5D,MAAM,UAAU,qBAAqB,CAAC,WAAmB,EAAE,OAA8B;IACvF,MAAM,IAAI,GAAG,WAAW;SACrB,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;SACpB,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC;SAC1B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC;IACpC,MAAM,IAAI,GAAG,OAAO,EAAE,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IAClI,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM;WACzB,CAAC,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU;YAC1E,CAAC,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzC,OAAO,GAAG,IAAI,IAAI,QAAQ,IAAI,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,WAAmB,EAAE,OAA8B;IACzF,OAAO,SAAS,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;AAChE,CAAC;AAED,MAAM,mBAAmB,GAAG,QAAQ,CAAC;AASrC,sCAAsC;AACtC,MAAM,UAAU,uBAAuB,CAAC,MAA+B;IACrE,IAAI,MAAM,CAAC,UAAU,KAAK,MAAM;QAAE,OAAO,MAAM,CAAC,WAAW,CAAC;IAC5D,MAAM,MAAM,GAAG,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAC9C,OAAO,MAAM,CAAC,UAAU,CAAC,mBAAmB,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC;QAC1C,CAAC,CAAC,MAAM,CAAC;AACb,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,MAA+B,EAC/B,OAA8B;IAE9B,OAAO,uBAAuB,CAAC,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC;AAC3E,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { WORKSPACE_FORK_COPY_PURPOSE, generateAutoRemixName, generateRemixBranchName, generateWorkspaceForkBranchName, workspaceForkSlugSource, type AutoRemixNameOptions, type WorkspaceForkNameSource, } from './auto-name.js';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/remix/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,EACrB,uBAAuB,EACvB,+BAA+B,EAC/B,uBAAuB,EACvB,KAAK,oBAAoB,EACzB,KAAK,uBAAuB,GAC7B,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { WORKSPACE_FORK_COPY_PURPOSE, generateAutoRemixName, generateRemixBranchName, generateWorkspaceForkBranchName, workspaceForkSlugSource, } from './auto-name.js';
2
+ //# sourceMappingURL=index.js.map