@intentic/sandbox-contract 1.226.0 → 1.227.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (194) hide show
  1. package/dist/contracts/activity.contract.d.ts.map +1 -1
  2. package/dist/contracts/activity.contract.js +17 -2
  3. package/dist/contracts/activity.contract.js.map +1 -1
  4. package/dist/contracts/agent.contract.d.ts +19 -2
  5. package/dist/contracts/agent.contract.d.ts.map +1 -1
  6. package/dist/contracts/agent.contract.js +71 -8
  7. package/dist/contracts/agent.contract.js.map +1 -1
  8. package/dist/contracts/agents.contract.d.ts +59 -0
  9. package/dist/contracts/agents.contract.d.ts.map +1 -1
  10. package/dist/contracts/agents.contract.js +164 -19
  11. package/dist/contracts/agents.contract.js.map +1 -1
  12. package/dist/contracts/automations.contract.d.ts.map +1 -1
  13. package/dist/contracts/automations.contract.js +78 -9
  14. package/dist/contracts/automations.contract.js.map +1 -1
  15. package/dist/contracts/capabilities.contract.d.ts.map +1 -1
  16. package/dist/contracts/capabilities.contract.js +98 -11
  17. package/dist/contracts/capabilities.contract.js.map +1 -1
  18. package/dist/contracts/chores.contract.d.ts.map +1 -1
  19. package/dist/contracts/chores.contract.js +26 -3
  20. package/dist/contracts/chores.contract.js.map +1 -1
  21. package/dist/contracts/ci.contract.d.ts.map +1 -1
  22. package/dist/contracts/ci.contract.js +52 -6
  23. package/dist/contracts/ci.contract.js.map +1 -1
  24. package/dist/contracts/claude.contract.d.ts.map +1 -1
  25. package/dist/contracts/claude.contract.js +44 -5
  26. package/dist/contracts/claude.contract.js.map +1 -1
  27. package/dist/contracts/drafts.contract.d.ts.map +1 -1
  28. package/dist/contracts/drafts.contract.js +26 -3
  29. package/dist/contracts/drafts.contract.js.map +1 -1
  30. package/dist/contracts/endpoints.contract.d.ts +1 -0
  31. package/dist/contracts/endpoints.contract.d.ts.map +1 -1
  32. package/dist/contracts/endpoints.contract.js +17 -2
  33. package/dist/contracts/endpoints.contract.js.map +1 -1
  34. package/dist/contracts/exit.contract.d.ts.map +1 -1
  35. package/dist/contracts/exit.contract.js +62 -7
  36. package/dist/contracts/exit.contract.js.map +1 -1
  37. package/dist/contracts/extensions.contract.d.ts +1 -0
  38. package/dist/contracts/extensions.contract.d.ts.map +1 -1
  39. package/dist/contracts/extensions.contract.js +124 -15
  40. package/dist/contracts/extensions.contract.js.map +1 -1
  41. package/dist/contracts/git.contract.d.ts.map +1 -1
  42. package/dist/contracts/git.contract.js +384 -43
  43. package/dist/contracts/git.contract.js.map +1 -1
  44. package/dist/contracts/grok.contract.d.ts.map +1 -1
  45. package/dist/contracts/grok.contract.js +25 -3
  46. package/dist/contracts/grok.contract.js.map +1 -1
  47. package/dist/contracts/history.contract.d.ts.map +1 -1
  48. package/dist/contracts/history.contract.js +35 -4
  49. package/dist/contracts/history.contract.js.map +1 -1
  50. package/dist/contracts/intentic.contract.d.ts.map +1 -1
  51. package/dist/contracts/intentic.contract.js +25 -3
  52. package/dist/contracts/intentic.contract.js.map +1 -1
  53. package/dist/contracts/inventory.contract.d.ts.map +1 -1
  54. package/dist/contracts/inventory.contract.js +26 -3
  55. package/dist/contracts/inventory.contract.js.map +1 -1
  56. package/dist/contracts/logs.contract.d.ts +17 -0
  57. package/dist/contracts/logs.contract.d.ts.map +1 -1
  58. package/dist/contracts/logs.contract.js +27 -3
  59. package/dist/contracts/logs.contract.js.map +1 -1
  60. package/dist/contracts/loops.contract.d.ts.map +1 -1
  61. package/dist/contracts/loops.contract.js +52 -6
  62. package/dist/contracts/loops.contract.js.map +1 -1
  63. package/dist/contracts/panels.contract.d.ts.map +1 -1
  64. package/dist/contracts/panels.contract.js +26 -3
  65. package/dist/contracts/panels.contract.js.map +1 -1
  66. package/dist/contracts/personas.contract.d.ts.map +1 -1
  67. package/dist/contracts/personas.contract.js +71 -8
  68. package/dist/contracts/personas.contract.js.map +1 -1
  69. package/dist/contracts/ports.contract.d.ts.map +1 -1
  70. package/dist/contracts/ports.contract.js +26 -3
  71. package/dist/contracts/ports.contract.js.map +1 -1
  72. package/dist/contracts/prepush.contract.d.ts.map +1 -1
  73. package/dist/contracts/prepush.contract.js +24 -3
  74. package/dist/contracts/prepush.contract.js.map +1 -1
  75. package/dist/contracts/providers.contract.d.ts +1 -0
  76. package/dist/contracts/providers.contract.d.ts.map +1 -1
  77. package/dist/contracts/providers.contract.js +9 -1
  78. package/dist/contracts/providers.contract.js.map +1 -1
  79. package/dist/contracts/public.contract.d.ts.map +1 -1
  80. package/dist/contracts/public.contract.js +26 -3
  81. package/dist/contracts/public.contract.js.map +1 -1
  82. package/dist/contracts/push.contract.d.ts.map +1 -1
  83. package/dist/contracts/push.contract.js +35 -4
  84. package/dist/contracts/push.contract.js.map +1 -1
  85. package/dist/contracts/secrets.contract.d.ts.map +1 -1
  86. package/dist/contracts/secrets.contract.js +43 -5
  87. package/dist/contracts/secrets.contract.js.map +1 -1
  88. package/dist/contracts/sessions.contract.d.ts +3 -0
  89. package/dist/contracts/sessions.contract.d.ts.map +1 -1
  90. package/dist/contracts/sessions.contract.js +15 -2
  91. package/dist/contracts/sessions.contract.js.map +1 -1
  92. package/dist/contracts/settings.contract.d.ts +19 -0
  93. package/dist/contracts/settings.contract.d.ts.map +1 -1
  94. package/dist/contracts/settings.contract.js +43 -5
  95. package/dist/contracts/settings.contract.js.map +1 -1
  96. package/dist/contracts/share.contract.d.ts.map +1 -1
  97. package/dist/contracts/share.contract.js +35 -4
  98. package/dist/contracts/share.contract.js.map +1 -1
  99. package/dist/contracts/skills.contract.d.ts.map +1 -1
  100. package/dist/contracts/skills.contract.js +35 -4
  101. package/dist/contracts/skills.contract.js.map +1 -1
  102. package/dist/contracts/system.contract.d.ts +7 -0
  103. package/dist/contracts/system.contract.d.ts.map +1 -1
  104. package/dist/contracts/system.contract.js +107 -14
  105. package/dist/contracts/system.contract.js.map +1 -1
  106. package/dist/contracts/translator.contract.d.ts.map +1 -1
  107. package/dist/contracts/translator.contract.js +29 -4
  108. package/dist/contracts/translator.contract.js.map +1 -1
  109. package/dist/contracts/usage.contract.d.ts.map +1 -1
  110. package/dist/contracts/usage.contract.js +9 -1
  111. package/dist/contracts/usage.contract.js.map +1 -1
  112. package/dist/contracts/vpn.contract.d.ts.map +1 -1
  113. package/dist/contracts/vpn.contract.js +32 -4
  114. package/dist/contracts/vpn.contract.js.map +1 -1
  115. package/dist/contracts/workflows.contract.d.ts.map +1 -1
  116. package/dist/contracts/workflows.contract.js +70 -8
  117. package/dist/contracts/workflows.contract.js.map +1 -1
  118. package/dist/contracts/workspace.contract.d.ts.map +1 -1
  119. package/dist/contracts/workspace.contract.js +216 -25
  120. package/dist/contracts/workspace.contract.js.map +1 -1
  121. package/dist/events.d.ts +46 -0
  122. package/dist/events.d.ts.map +1 -1
  123. package/dist/events.js +193 -88
  124. package/dist/events.js.map +1 -1
  125. package/dist/history-state.d.ts.map +1 -1
  126. package/dist/history-state.js +1 -0
  127. package/dist/history-state.js.map +1 -1
  128. package/dist/index.d.ts +197 -70
  129. package/dist/index.d.ts.map +1 -1
  130. package/dist/index.js +2 -0
  131. package/dist/index.js.map +1 -1
  132. package/dist/prompt-complexity.d.ts +9 -1
  133. package/dist/prompt-complexity.d.ts.map +1 -1
  134. package/dist/prompt-complexity.js +13 -5
  135. package/dist/prompt-complexity.js.map +1 -1
  136. package/dist/request-id.d.ts +3 -0
  137. package/dist/request-id.d.ts.map +1 -0
  138. package/dist/request-id.js +3 -0
  139. package/dist/request-id.js.map +1 -0
  140. package/dist/schemas.d.ts +89 -0
  141. package/dist/schemas.d.ts.map +1 -1
  142. package/dist/schemas.js +2912 -1276
  143. package/dist/schemas.js.map +1 -1
  144. package/dist/starter.d.ts +3 -0
  145. package/dist/starter.d.ts.map +1 -0
  146. package/dist/starter.js +3 -0
  147. package/dist/starter.js.map +1 -0
  148. package/package.json +5 -4
  149. package/src/contract-lock.test.ts +8 -2
  150. package/src/contracts/activity.contract.ts +18 -2
  151. package/src/contracts/agent.contract.ts +78 -8
  152. package/src/contracts/agents.contract.ts +180 -19
  153. package/src/contracts/automations.contract.ts +80 -9
  154. package/src/contracts/capabilities.contract.ts +106 -11
  155. package/src/contracts/chores.contract.ts +29 -3
  156. package/src/contracts/ci.contract.ts +55 -6
  157. package/src/contracts/claude.contract.ts +47 -5
  158. package/src/contracts/drafts.contract.ts +26 -3
  159. package/src/contracts/endpoints.contract.ts +19 -2
  160. package/src/contracts/exit.contract.ts +69 -7
  161. package/src/contracts/extensions.contract.ts +134 -15
  162. package/src/contracts/git.contract.ts +421 -43
  163. package/src/contracts/grok.contract.ts +26 -3
  164. package/src/contracts/history.contract.ts +37 -4
  165. package/src/contracts/intentic.contract.ts +28 -3
  166. package/src/contracts/inventory.contract.ts +27 -3
  167. package/src/contracts/logs.contract.ts +41 -4
  168. package/src/contracts/loops.contract.ts +58 -6
  169. package/src/contracts/panels.contract.ts +26 -3
  170. package/src/contracts/personas.contract.ts +77 -8
  171. package/src/contracts/ports.contract.ts +27 -3
  172. package/src/contracts/prepush.contract.ts +26 -3
  173. package/src/contracts/providers.contract.ts +10 -1
  174. package/src/contracts/public.contract.ts +29 -3
  175. package/src/contracts/push.contract.ts +37 -4
  176. package/src/contracts/secrets.contract.ts +46 -5
  177. package/src/contracts/sessions.contract.ts +16 -2
  178. package/src/contracts/settings.contract.ts +46 -5
  179. package/src/contracts/share.contract.ts +37 -4
  180. package/src/contracts/skills.contract.ts +39 -4
  181. package/src/contracts/system.contract.ts +119 -14
  182. package/src/contracts/translator.contract.ts +32 -4
  183. package/src/contracts/usage.contract.ts +10 -1
  184. package/src/contracts/vpn.contract.ts +35 -4
  185. package/src/contracts/workflows.contract.ts +77 -8
  186. package/src/contracts/workspace.contract.ts +231 -25
  187. package/src/events.ts +259 -89
  188. package/src/history-state.ts +6 -0
  189. package/src/index.ts +2 -0
  190. package/src/prompt-complexity.test.ts +69 -0
  191. package/src/prompt-complexity.ts +102 -39
  192. package/src/request-id.ts +41 -0
  193. package/src/schemas.ts +3700 -1260
  194. package/src/starter.ts +13 -0
@@ -2,14 +2,39 @@ import { oc } from "@orpc/contract";
2
2
  import { z } from "zod";
3
3
  import { KeyedProviderSchema, OkSchema, TranslatorAccountsSchema, TranslatorCompleteSchema, TranslatorStartSchema } from "../schemas.js";
4
4
  export const translatorContract = {
5
- accounts: oc.route({ method: "GET", path: "/translator/accounts" }).output(TranslatorAccountsSchema),
5
+ accounts: oc
6
+ .route({
7
+ method: "GET",
8
+ path: "/translator/accounts",
9
+ summary: "Subscriptions connected through the translator",
10
+ description: "What is signed in per provider. Each provider can hold several accounts at once, and the translator spreads work across them.",
11
+ })
12
+ .output(TranslatorAccountsSchema),
6
13
  connect: oc
7
- .route({ method: "POST", path: "/translator/{provider}/connect" })
14
+ .route({
15
+ method: "POST",
16
+ path: "/translator/{provider}/connect",
17
+ summary: "Start connecting a subscription",
18
+ description: "Begins the sign-in for one provider and says which of the two shapes it is: a code you type into a device page, which finishes by itself in the background, or a redirect whose landing address you hand back afterwards.",
19
+ })
8
20
  .input(z.object({ provider: KeyedProviderSchema }))
9
21
  .output(TranslatorStartSchema),
10
- complete: oc.route({ method: "POST", path: "/translator/{provider}/complete" }).input(TranslatorCompleteSchema).output(OkSchema),
22
+ complete: oc
23
+ .route({
24
+ method: "POST",
25
+ path: "/translator/{provider}/complete",
26
+ summary: "Finish a redirect sign-in",
27
+ description: "For the providers that redirect somewhere this sandbox cannot receive: hand back the address you landed on and the connection completes.",
28
+ })
29
+ .input(TranslatorCompleteSchema)
30
+ .output(OkSchema),
11
31
  disconnect: oc
12
- .route({ method: "POST", path: "/translator/{provider}/disconnect" })
32
+ .route({
33
+ method: "POST",
34
+ path: "/translator/{provider}/disconnect",
35
+ summary: "Disconnect one subscription",
36
+ description: "Clears a single account by name. Any others under the same provider stay connected.",
37
+ })
13
38
  .input(z.object({ provider: KeyedProviderSchema, name: z.string().min(1) }))
14
39
  .output(OkSchema),
15
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"translator.contract.js","sourceRoot":"","sources":["../../src/contracts/translator.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAWzI,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,wBAAwB,CAAC;IACpG,OAAO,EAAE,EAAE;SACN,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gCAAgC,EAAE,CAAC;SACjE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;SAClD,MAAM,CAAC,qBAAqB,CAAC;IAClC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAChI,UAAU,EAAE,EAAE;SACT,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC;SACpE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3E,MAAM,CAAC,QAAQ,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"translator.contract.js","sourceRoot":"","sources":["../../src/contracts/translator.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAWzI,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAC9B,QAAQ,EAAE,EAAE;SACP,KAAK,CAAC;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,gDAAgD;QACzD,WAAW,EACP,+HAA+H;KACtI,CAAC;SACD,MAAM,CAAC,wBAAwB,CAAC;IACrC,OAAO,EAAE,EAAE;SACN,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,gCAAgC;QACtC,OAAO,EAAE,iCAAiC;QAC1C,WAAW,EACP,2NAA2N;KAClO,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;SAClD,MAAM,CAAC,qBAAqB,CAAC;IAClC,QAAQ,EAAE,EAAE;SACP,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,2BAA2B;QACpC,WAAW,EACP,0IAA0I;KACjJ,CAAC;SACD,KAAK,CAAC,wBAAwB,CAAC;SAC/B,MAAM,CAAC,QAAQ,CAAC;IACrB,UAAU,EAAE,EAAE;SACT,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,6BAA6B;QACtC,WAAW,EAAE,qFAAqF;KACrG,CAAC;SACD,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC3E,MAAM,CAAC,QAAQ,CAAC;CACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"usage.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/usage.contract.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa;IACtB,MAAM;;;;;;;;;;;;;;;;;;;;CACT,CAAC"}
1
+ {"version":3,"file":"usage.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/usage.contract.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,aAAa;IACtB,MAAM;;;;;;;;;;;;;;;;;;;;CAUT,CAAC"}
@@ -1,6 +1,14 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { DayWindowQuerySchema, UsageRollupSchema } from "../schemas.js";
3
3
  export const usageContract = {
4
- rollup: oc.route({ method: "GET", path: "/usage/rollup" }).input(DayWindowQuerySchema).output(UsageRollupSchema),
4
+ rollup: oc
5
+ .route({
6
+ method: "GET",
7
+ path: "/usage/rollup",
8
+ summary: "What was spent, grouped",
9
+ description: "The spending record over a range of days, grouped by day, provider, account and model. Everything a cost screen shows is a rearrangement of this one answer, so nothing needs a second call. Read-only: rows are written by the sandbox as turns end, which is what makes it worth trusting.",
10
+ })
11
+ .input(DayWindowQuerySchema)
12
+ .output(UsageRollupSchema),
5
13
  };
6
14
  //# sourceMappingURL=usage.contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.contract.js","sourceRoot":"","sources":["../../src/contracts/usage.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMxE,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;CACnH,CAAC"}
1
+ {"version":3,"file":"usage.contract.js","sourceRoot":"","sources":["../../src/contracts/usage.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMxE,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,MAAM,EAAE,EAAE;SACL,KAAK,CAAC;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,yBAAyB;QAClC,WAAW,EACP,8RAA8R;KACrS,CAAC;SACD,KAAK,CAAC,oBAAoB,CAAC;SAC3B,MAAM,CAAC,iBAAiB,CAAC;CACjC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"vpn.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/vpn.contract.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,WAAW;IAEpB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;IAIJ,OAAO;;;;;;;;;;IAEP,UAAU;;;;;IAGV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAIpB,CAAC"}
1
+ {"version":3,"file":"vpn.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/vpn.contract.ts"],"names":[],"mappings":"AAmBA,eAAO,MAAM,WAAW;IAEpB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;IAYJ,OAAO;;;;;;;;;;IAWP,UAAU;;;;;IAWV,iBAAiB;;;;;;;;;;;;;;;;;;;;;;CAUpB,CAAC"}
@@ -2,11 +2,39 @@ import { eventIterator, oc } from "@orpc/contract";
2
2
  import { IntenticLineSchema } from "../events.js";
3
3
  import { ForticlientImportInputSchema, ForticlientImportSchema, OkSchema, VpnConnectInputSchema, VpnIdParamSchema, VpnListSchema, } from "../schemas.js";
4
4
  export const vpnContract = {
5
- list: oc.route({ method: "GET", path: "/vpn" }).output(VpnListSchema),
6
- connect: oc.route({ method: "POST", path: "/vpn/{id}/connect" }).input(VpnConnectInputSchema).output(eventIterator(IntenticLineSchema)),
7
- disconnect: oc.route({ method: "POST", path: "/vpn/{id}/disconnect" }).input(VpnIdParamSchema).output(OkSchema),
5
+ list: oc
6
+ .route({
7
+ method: "GET",
8
+ path: "/vpn",
9
+ summary: "Configured tunnels and which are up",
10
+ description: "Every stored VPN with its live link state, read back from the operating system rather than from memory, so a tunnel dropped from a shell and one dropped from a screen look the same here.",
11
+ })
12
+ .output(VpnListSchema),
13
+ connect: oc
14
+ .route({
15
+ method: "POST",
16
+ path: "/vpn/{id}/connect",
17
+ summary: "Dial a VPN",
18
+ description: "Brings a stored tunnel up, streaming the client's progress as it authenticates and then sets up routing. Streamed because a dial takes seconds and can fail with something you have to read: a wrong password, a gateway certificate nobody trusts, a code it wants. Connecting one that is already up simply says so.",
19
+ })
20
+ .input(VpnConnectInputSchema)
21
+ .output(eventIterator(IntenticLineSchema)),
22
+ disconnect: oc
23
+ .route({
24
+ method: "POST",
25
+ path: "/vpn/{id}/disconnect",
26
+ summary: "Drop a tunnel",
27
+ description: "Takes the tunnel down. One that was already down is fine: the promise is that it is not up afterwards.",
28
+ })
29
+ .input(VpnIdParamSchema)
30
+ .output(OkSchema),
8
31
  importForticlient: oc
9
- .route({ method: "POST", path: "/vpn/import-forticlient" })
32
+ .route({
33
+ method: "POST",
34
+ path: "/vpn/import-forticlient",
35
+ summary: "Read connections out of an exported config",
36
+ description: "Turns an exported FortiClient configuration into a list of connections you can add, so somebody holding that file picks from a list instead of retyping a host and port for every tunnel.",
37
+ })
10
38
  .input(ForticlientImportInputSchema)
11
39
  .output(ForticlientImportSchema),
12
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"vpn.contract.js","sourceRoot":"","sources":["../../src/contracts/vpn.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,GAChB,MAAM,eAAe,CAAC;AAUvB,MAAM,CAAC,MAAM,WAAW,GAAG;IAEvB,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAIrE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAEvI,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAG/G,iBAAiB,EAAE,EAAE;SAChB,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SAC1D,KAAK,CAAC,4BAA4B,CAAC;SACnC,MAAM,CAAC,uBAAuB,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"vpn.contract.js","sourceRoot":"","sources":["../../src/contracts/vpn.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EACH,4BAA4B,EAC5B,uBAAuB,EACvB,QAAQ,EACR,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,GAChB,MAAM,eAAe,CAAC;AAUvB,MAAM,CAAC,MAAM,WAAW,GAAG;IAEvB,IAAI,EAAE,EAAE;SACH,KAAK,CAAC;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,qCAAqC;QAC9C,WAAW,EACP,4LAA4L;KACnM,CAAC;SACD,MAAM,CAAC,aAAa,CAAC;IAI1B,OAAO,EAAE,EAAE;SACN,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mBAAmB;QACzB,OAAO,EAAE,YAAY;QACrB,WAAW,EACP,wTAAwT;KAC/T,CAAC;SACD,KAAK,CAAC,qBAAqB,CAAC;SAC5B,MAAM,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAE9C,UAAU,EAAE,EAAE;SACT,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,sBAAsB;QAC5B,OAAO,EAAE,eAAe;QACxB,WAAW,EAAE,wGAAwG;KACxH,CAAC;SACD,KAAK,CAAC,gBAAgB,CAAC;SACvB,MAAM,CAAC,QAAQ,CAAC;IAGrB,iBAAiB,EAAE,EAAE;SAChB,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,yBAAyB;QAC/B,OAAO,EAAE,4CAA4C;QACrD,WAAW,EACP,2LAA2L;KAClM,CAAC;SACD,KAAK,CAAC,4BAA4B,CAAC;SACnC,MAAM,CAAC,uBAAuB,CAAC;CACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/workflows.contract.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,iBAAiB;IAG1B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGJ,MAAM;;;;;IAMN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAGH,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcJ,OAAO;;;;;IAaP,UAAU;;;;;IAGV,YAAY;;;;;CACf,CAAC"}
1
+ {"version":3,"file":"workflows.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/workflows.contract.ts"],"names":[],"mappings":"AAyBA,eAAO,MAAM,iBAAiB;IAG1B,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAcJ,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYJ,MAAM;;;;;IAeN,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAYH,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsBJ,OAAO;;;;;IAsBP,UAAU;;;;;IAYV,YAAY;;;;;CASf,CAAC"}
@@ -1,13 +1,75 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { OkSchema, WorkflowIdParamSchema, WorkflowRunIdParamSchema, WorkflowRunSchema, WorkflowRunsListSchema, WorkflowRunStartSchema, WorkflowSaveSchema, WorkflowSchema, WorkflowsListSchema, } from "../schemas.js";
3
3
  export const workflowsContract = {
4
- list: oc.route({ method: "GET", path: "/workflows" }).output(WorkflowsListSchema),
5
- save: oc.route({ method: "POST", path: "/workflows" }).input(WorkflowSaveSchema).output(WorkflowSchema),
6
- remove: oc.route({ method: "DELETE", path: "/workflows/{id}" }).input(WorkflowIdParamSchema).output(OkSchema),
7
- run: oc.route({ method: "POST", path: "/workflows/{id}/run" }).input(WorkflowRunStartSchema).output(WorkflowRunSchema),
8
- runs: oc.route({ method: "GET", path: "/workflows/runs" }).output(WorkflowRunsListSchema),
9
- stopRun: oc.route({ method: "POST", path: "/workflows/runs/{runId}/stop" }).input(WorkflowRunIdParamSchema).output(OkSchema),
10
- archiveRun: oc.route({ method: "POST", path: "/workflows/runs/{runId}/archive" }).input(WorkflowRunIdParamSchema).output(OkSchema),
11
- unarchiveRun: oc.route({ method: "POST", path: "/workflows/runs/{runId}/unarchive" }).input(WorkflowRunIdParamSchema).output(OkSchema),
4
+ list: oc
5
+ .route({
6
+ method: "GET",
7
+ path: "/workflows",
8
+ summary: "Saved workflows and their runs",
9
+ description: "Every workflow somebody has designed, each with its own run history, newest first. One answer rather than two, because a workflow that has never been run is the interesting case rather than a mistake.",
10
+ })
11
+ .output(WorkflowsListSchema),
12
+ save: oc
13
+ .route({
14
+ method: "POST",
15
+ path: "/workflows",
16
+ summary: "Create or replace a workflow",
17
+ description: "Writes a workflow design. Say which of the two you mean, so an id that happens to collide cannot silently overwrite somebody's work. A design that could never run is refused, in the same words the editor shows while you type: a loop in the steps, a step waiting on one that is not there, a step with no way of knowing it is finished.",
18
+ })
19
+ .input(WorkflowSaveSchema)
20
+ .output(WorkflowSchema),
21
+ remove: oc
22
+ .route({
23
+ method: "DELETE",
24
+ path: "/workflows/{id}",
25
+ summary: "Delete a workflow",
26
+ description: "Removes the design. A run of it that is already going keeps going and stays readable and stoppable, because a run takes its own copy of the design when it starts.",
27
+ })
28
+ .input(WorkflowIdParamSchema)
29
+ .output(OkSchema),
30
+ run: oc
31
+ .route({
32
+ method: "POST",
33
+ path: "/workflows/{id}/run",
34
+ summary: "Start a workflow",
35
+ description: "Kicks a workflow off and answers immediately with the run as recorded; the work carries on without you. Point it at a question and every step gets that on top of its own instructions. Every step is written down as waiting up front, so the picture is complete from the first frame. Several runs of one design can be in flight at once without colliding.",
36
+ })
37
+ .input(WorkflowRunStartSchema)
38
+ .output(WorkflowRunSchema),
39
+ runs: oc
40
+ .route({
41
+ method: "GET",
42
+ path: "/workflows/runs",
43
+ summary: "Every workflow run",
44
+ description: "All runs across all workflows, newest first. This is also the only place the runs of a deleted workflow are still reachable.",
45
+ })
46
+ .output(WorkflowRunsListSchema),
47
+ stopRun: oc
48
+ .route({
49
+ method: "POST",
50
+ path: "/workflows/runs/{runId}/stop",
51
+ summary: "Stop a run now",
52
+ description: "Nothing further starts, and the steps already going are cut off where they stand. Whatever they had written stays on their branches. Deliberately abrupt rather than letting the current step finish: a step is a whole agent turn, and a stop that kept spending for minutes afterwards is indistinguishable from a button that does nothing. It always ends the run, including one left stranded by a daemon that was replaced mid-flight.",
53
+ })
54
+ .input(WorkflowRunIdParamSchema)
55
+ .output(OkSchema),
56
+ archiveRun: oc
57
+ .route({
58
+ method: "POST",
59
+ path: "/workflows/runs/{runId}/archive",
60
+ summary: "Take a finished run off the board",
61
+ description: "Nothing is lost and the working copies are reclaimed. Every conversation the run started is put away with it, which is what makes this an archive rather than a dismissal: a step has no card of its own, so merely dropping the run would spill its conversations onto the board at the moment somebody said they were done. Refused while the run is still going.",
62
+ })
63
+ .input(WorkflowRunIdParamSchema)
64
+ .output(OkSchema),
65
+ unarchiveRun: oc
66
+ .route({
67
+ method: "POST",
68
+ path: "/workflows/runs/{runId}/unarchive",
69
+ summary: "Bring an archived run back",
70
+ description: "Puts a run and every conversation it started back on the board.",
71
+ })
72
+ .input(WorkflowRunIdParamSchema)
73
+ .output(OkSchema),
12
74
  };
13
75
  //# sourceMappingURL=workflows.contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workflows.contract.js","sourceRoot":"","sources":["../../src/contracts/workflows.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACH,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACtB,MAAM,eAAe,CAAC;AAcvB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAG7B,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAMjF,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IAGvG,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAM7G,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAGtH,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAczF,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAa5H,UAAU,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iCAAiC,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAGlI,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,mCAAmC,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;CACzI,CAAC"}
1
+ {"version":3,"file":"workflows.contract.js","sourceRoot":"","sources":["../../src/contracts/workflows.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACH,QAAQ,EACR,qBAAqB,EACrB,wBAAwB,EACxB,iBAAiB,EACjB,sBAAsB,EACtB,sBAAsB,EACtB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GACtB,MAAM,eAAe,CAAC;AAcvB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAG7B,IAAI,EAAE,EAAE;SACH,KAAK,CAAC;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,gCAAgC;QACzC,WAAW,EACP,0MAA0M;KACjN,CAAC;SACD,MAAM,CAAC,mBAAmB,CAAC;IAMhC,IAAI,EAAE,EAAE;SACH,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,YAAY;QAClB,OAAO,EAAE,8BAA8B;QACvC,WAAW,EACP,+UAA+U;KACtV,CAAC;SACD,KAAK,CAAC,kBAAkB,CAAC;SACzB,MAAM,CAAC,cAAc,CAAC;IAG3B,MAAM,EAAE,EAAE;SACL,KAAK,CAAC;QACH,MAAM,EAAE,QAAQ;QAChB,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,mBAAmB;QAC5B,WAAW,EACP,oKAAoK;KAC3K,CAAC;SACD,KAAK,CAAC,qBAAqB,CAAC;SAC5B,MAAM,CAAC,QAAQ,CAAC;IAMrB,GAAG,EAAE,EAAE;SACF,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,qBAAqB;QAC3B,OAAO,EAAE,kBAAkB;QAC3B,WAAW,EACP,iWAAiW;KACxW,CAAC;SACD,KAAK,CAAC,sBAAsB,CAAC;SAC7B,MAAM,CAAC,iBAAiB,CAAC;IAG9B,IAAI,EAAE,EAAE;SACH,KAAK,CAAC;QACH,MAAM,EAAE,KAAK;QACb,IAAI,EAAE,iBAAiB;QACvB,OAAO,EAAE,oBAAoB;QAC7B,WAAW,EACP,8HAA8H;KACrI,CAAC;SACD,MAAM,CAAC,sBAAsB,CAAC;IAcnC,OAAO,EAAE,EAAE;SACN,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,8BAA8B;QACpC,OAAO,EAAE,gBAAgB;QACzB,WAAW,EACP,8aAA8a;KACrb,CAAC;SACD,KAAK,CAAC,wBAAwB,CAAC;SAC/B,MAAM,CAAC,QAAQ,CAAC;IAarB,UAAU,EAAE,EAAE;SACT,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,iCAAiC;QACvC,OAAO,EAAE,mCAAmC;QAC5C,WAAW,EACP,qWAAqW;KAC5W,CAAC;SACD,KAAK,CAAC,wBAAwB,CAAC;SAC/B,MAAM,CAAC,QAAQ,CAAC;IAGrB,YAAY,EAAE,EAAE;SACX,KAAK,CAAC;QACH,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,mCAAmC;QACzC,OAAO,EAAE,4BAA4B;QACrC,WAAW,EAAE,iEAAiE;KACjF,CAAC;SACD,KAAK,CAAC,wBAAwB,CAAC;SAC/B,MAAM,CAAC,QAAQ,CAAC;CACxB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/workspace.contract.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,iBAAiB;IAI1B,IAAI;;;;;;;IAGJ,QAAQ;;;;;;;IAGR,IAAI;;;;;;;;;;;;;;;;;IAKJ,WAAW;;;;;;;IAOX,OAAO;;;;;;IAGP,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIN,QAAQ;;;;;;;;;;;;;IAIR,KAAK;;;;;IACL,MAAM;;;;;IACN,IAAI;;;;;;IACJ,IAAI;;;;;;IAKJ,KAAK;;;;;;;;;;;;;;;;;;;;IACL,OAAO;;;;;IACP,KAAK;;;IACL,OAAO;;;;;;;;IAGP,IAAI;;;;;;;;;;;;;;;;;;IAGJ,SAAS;;;;;;;IAMT,OAAO;;;;;;;;;IACP,QAAQ;;;;;;;;;;;IAGR,YAAY;;;;;;;;;;;;;;;;;;IAIZ,OAAO;;;;;;;;;IACP,QAAQ;;;;;;IACR,OAAO;;;;;;IAIP,QAAQ;;;;;;;CACX,CAAC"}
1
+ {"version":3,"file":"workspace.contract.d.ts","sourceRoot":"","sources":["../../src/contracts/workspace.contract.ts"],"names":[],"mappings":"AAyCA,eAAO,MAAM,iBAAiB;IAI1B,IAAI;;;;;;;IAYJ,QAAQ;;;;;;;IAYR,IAAI;;;;;;;;;;;;;;;;;IAcJ,WAAW;;;;;;;IAaX,OAAO;;;;;;IAYP,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAaN,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAaN,QAAQ;;;;;;;;;;;;;IAYR,KAAK;;;;;IASL,MAAM;;;;;IAUN,IAAI;;;;;;IASJ,IAAI;;;;;;IAaJ,KAAK;;;;;;;;;;;;;;;;;;;;IASL,OAAO;;;;;IAUP,KAAK;;;IAQL,OAAO;;;;;;;;IAWP,IAAI;;;;;;;;;;;;;;;;;;IAWJ,SAAS;;;;;;;IAaT,OAAO;;;;;;;;;IAUP,QAAQ;;;;;;;;;;;IAWR,YAAY;;;;;;;;;;;;;;;;;;IAYZ,OAAO;;;;;;;;;IASP,QAAQ;;;;;;IASR,OAAO;;;;;;IAYP,QAAQ;;;;;;;CAUX,CAAC"}
@@ -1,33 +1,224 @@
1
1
  import { oc } from "@orpc/contract";
2
2
  import { AddAppsSchema, AppParamSchema, AppsListSchema, CloneRepoSchema, CloneResultSchema, WorkspaceSearchResultSchema, WorkspaceSearchQuerySchema, OkSchema, RepoAppsParamSchema, ReposListSchema, RunTestsSchema, TemplatesListSchema, WorkspaceChildrenQuerySchema, WorkspaceChildrenSchema, WorkspaceClassificationSchema, WorkspaceDirSchema, WorkspaceFileQuerySchema, WorkspaceFileReadQuerySchema, WorkspaceFileSchema, WorkspaceGraphSchema, WorkspaceHealthQuerySchema, WorkspaceHealthSchema, WorkspaceInstallResultSchema, WorkspaceInstallSchema, WorkspaceMediaTicketQuerySchema, WorkspaceMediaTicketSchema, WorkspaceModulesSchema, WorkspaceMoveSchema, WorkspaceResolveQuerySchema, WorkspaceResolveSchema, WorkspaceScopeSchema, WorkspaceSetupSchema, WorkspaceSyncSchema, WorkspaceTreeSchema, } from "../schemas.js";
3
3
  export const workspaceContract = {
4
- tree: oc.route({ method: "GET", path: "/workspace/tree" }).input(WorkspaceScopeSchema).output(WorkspaceTreeSchema),
5
- children: oc.route({ method: "GET", path: "/workspace/children" }).input(WorkspaceChildrenQuerySchema).output(WorkspaceChildrenSchema),
6
- file: oc.route({ method: "GET", path: "/workspace/file" }).input(WorkspaceFileReadQuerySchema).output(WorkspaceFileSchema),
4
+ tree: oc
5
+ .route({
6
+ method: "GET",
7
+ path: "/workspace/tree",
8
+ summary: "The workspace file tree",
9
+ description: "Every folder and file under the workspace root, as one walk. Name a conversation to read its own private copy of the tree instead of the shared one. Folders the daemon skips, such as installed packages, come back without their contents; ask for those separately.",
10
+ })
11
+ .input(WorkspaceScopeSchema)
12
+ .output(WorkspaceTreeSchema),
13
+ children: oc
14
+ .route({
15
+ method: "GET",
16
+ path: "/workspace/children",
17
+ summary: "One folder's contents",
18
+ description: "The entries directly inside a single folder. This is how you open a folder the full tree walk deliberately left closed, such as an installed-packages directory with a hundred thousand files in it.",
19
+ })
20
+ .input(WorkspaceChildrenQuerySchema)
21
+ .output(WorkspaceChildrenSchema),
22
+ file: oc
23
+ .route({
24
+ method: "GET",
25
+ path: "/workspace/file",
26
+ summary: "Read part of a text file",
27
+ description: "A window of one file's text, plus how large the whole file is. Never the entire file: an unbounded read is how a single enormous log stalls the daemon for everyone, so ask for the slice you mean to show and page through if you need more.",
28
+ })
29
+ .input(WorkspaceFileReadQuerySchema)
30
+ .output(WorkspaceFileSchema),
7
31
  mediaTicket: oc
8
- .route({ method: "POST", path: "/workspace/media-ticket" })
32
+ .route({
33
+ method: "POST",
34
+ path: "/workspace/media-ticket",
35
+ summary: "Get a pass for streaming a media file",
36
+ description: "Mints the short-lived ticket a video or audio element hands to the streaming route, which serves byte ranges and so cannot carry an ordinary header. Minting it here means a caller can tell whether this sandbox streams media at all, rather than discovering it mid-playback.",
37
+ })
9
38
  .input(WorkspaceMediaTicketQuerySchema)
10
39
  .output(WorkspaceMediaTicketSchema),
11
- resolve: oc.route({ method: "GET", path: "/workspace/resolve" }).input(WorkspaceResolveQuerySchema).output(WorkspaceResolveSchema),
12
- search: oc.route({ method: "GET", path: "/workspace/search" }).input(WorkspaceSearchQuerySchema).output(WorkspaceSearchResultSchema),
13
- health: oc.route({ method: "GET", path: "/workspace/health" }).input(WorkspaceHealthQuerySchema).output(WorkspaceHealthSchema),
14
- classify: oc.route({ method: "GET", path: "/workspace/classify" }).output(WorkspaceClassificationSchema),
15
- mkdir: oc.route({ method: "POST", path: "/workspace/dir" }).input(WorkspaceDirSchema).output(OkSchema),
16
- delete: oc.route({ method: "DELETE", path: "/workspace/entry" }).input(WorkspaceFileQuerySchema).output(OkSchema),
17
- move: oc.route({ method: "POST", path: "/workspace/move" }).input(WorkspaceMoveSchema).output(OkSchema),
18
- copy: oc.route({ method: "POST", path: "/workspace/copy" }).input(WorkspaceMoveSchema).output(OkSchema),
19
- setup: oc.route({ method: "GET", path: "/workspace/setup" }).output(WorkspaceSetupSchema),
20
- install: oc.route({ method: "POST", path: "/workspace/setup/install" }).input(WorkspaceInstallSchema).output(WorkspaceInstallResultSchema),
21
- repos: oc.route({ method: "GET", path: "/workspace/repos" }).output(ReposListSchema),
22
- addRepo: oc.route({ method: "POST", path: "/workspace/repos" }).input(CloneRepoSchema).output(CloneResultSchema),
23
- sync: oc.route({ method: "POST", path: "/workspace/sync" }).output(WorkspaceSyncSchema),
24
- templates: oc.route({ method: "GET", path: "/workspace/templates" }).output(TemplatesListSchema),
25
- addApps: oc.route({ method: "POST", path: "/workspace/repos/{repo}/apps" }).input(AddAppsSchema).output(OkSchema),
26
- appsList: oc.route({ method: "GET", path: "/workspace/repos/{repo}/apps" }).input(RepoAppsParamSchema).output(AppsListSchema),
27
- packageGraph: oc.route({ method: "GET", path: "/workspace/repos/{repo}/graph" }).input(RepoAppsParamSchema).output(WorkspaceGraphSchema),
28
- modules: oc.route({ method: "GET", path: "/workspace/modules" }).output(WorkspaceModulesSchema),
29
- startApp: oc.route({ method: "POST", path: "/workspace/repos/{repo}/apps/{app}/start" }).input(AppParamSchema).output(OkSchema),
30
- stopApp: oc.route({ method: "POST", path: "/workspace/repos/{repo}/apps/{app}/stop" }).input(AppParamSchema).output(OkSchema),
31
- runTests: oc.route({ method: "POST", path: "/workspace/repos/{repo}/tests" }).input(RunTestsSchema).output(OkSchema),
40
+ resolve: oc
41
+ .route({
42
+ method: "GET",
43
+ path: "/workspace/resolve",
44
+ summary: "Turn a written path into a real file",
45
+ description: "Matches a path somebody wrote in prose against the real tree and says which file it means. A path mentioned in a message is often only the tail of the real one, so this is the lookup behind every clickable file reference rather than a plain existence check.",
46
+ })
47
+ .input(WorkspaceResolveQuerySchema)
48
+ .output(WorkspaceResolveSchema),
49
+ search: oc
50
+ .route({
51
+ method: "GET",
52
+ path: "/workspace/search",
53
+ summary: "Search the code",
54
+ description: "Ranked results across the whole workspace, grouped, each carrying why it matched and how fresh it is. Left alone it blends plain text, structure, meaning and history in one pass; narrow it to a single kind of search when you already know which you want. Long result sets resume from the cursor it hands back.",
55
+ })
56
+ .input(WorkspaceSearchQuerySchema)
57
+ .output(WorkspaceSearchResultSchema),
58
+ health: oc
59
+ .route({
60
+ method: "GET",
61
+ path: "/workspace/health",
62
+ summary: "A repo's shape in numbers",
63
+ description: "Where one repo's risk sits: the files that change often and are complicated at once, what the index holds, and which modules the rest of the code leans on most. Scoped to a repo, because a codebase is a repo rather than the whole drop.",
64
+ })
65
+ .input(WorkspaceHealthQuerySchema)
66
+ .output(WorkspaceHealthSchema),
67
+ classify: oc
68
+ .route({
69
+ method: "GET",
70
+ path: "/workspace/classify",
71
+ summary: "Sort a messy drop into buckets",
72
+ description: "Proposes which of the loose things in the workspace are code, documents, media or archives. A read-only suggestion by fixed rules, with no model involved: nothing moves until a caller applies the moves it likes through the move call.",
73
+ })
74
+ .output(WorkspaceClassificationSchema),
75
+ mkdir: oc
76
+ .route({
77
+ method: "POST",
78
+ path: "/workspace/dir",
79
+ summary: "Create a folder",
80
+ description: "Makes a folder, and any missing folders above it.",
81
+ })
82
+ .input(WorkspaceDirSchema)
83
+ .output(OkSchema),
84
+ delete: oc
85
+ .route({
86
+ method: "DELETE",
87
+ path: "/workspace/entry",
88
+ summary: "Delete a file or folder",
89
+ description: "Removes one entry and everything under it. The path travels in the body rather than the address, the same as every other write in this group.",
90
+ })
91
+ .input(WorkspaceFileQuerySchema)
92
+ .output(OkSchema),
93
+ move: oc
94
+ .route({
95
+ method: "POST",
96
+ path: "/workspace/move",
97
+ summary: "Move or rename something",
98
+ description: "Moves one entry to a new path, which is also how you rename it.",
99
+ })
100
+ .input(WorkspaceMoveSchema)
101
+ .output(OkSchema),
102
+ copy: oc
103
+ .route({
104
+ method: "POST",
105
+ path: "/workspace/copy",
106
+ summary: "Copy a file or folder",
107
+ description: "Duplicates one entry at a new path, recursively for a folder.",
108
+ })
109
+ .input(WorkspaceMoveSchema)
110
+ .output(OkSchema),
111
+ setup: oc
112
+ .route({
113
+ method: "GET",
114
+ path: "/workspace/setup",
115
+ summary: "Which projects have their dependencies installed",
116
+ description: "Per project, whether its dependencies are actually present. A project that arrives by import comes without them, so files landing is not the same as the project working: until this says a project is ready, its type checks and tests can only mislead you.",
117
+ })
118
+ .output(WorkspaceSetupSchema),
119
+ install: oc
120
+ .route({
121
+ method: "POST",
122
+ path: "/workspace/setup/install",
123
+ summary: "Install a project's dependencies",
124
+ description: "Starts the install for one or more projects in a terminal you can attach to, and answers immediately. The run survives a page reload and its output stays in the terminal history.",
125
+ })
126
+ .input(WorkspaceInstallSchema)
127
+ .output(WorkspaceInstallResultSchema),
128
+ repos: oc
129
+ .route({
130
+ method: "GET",
131
+ path: "/workspace/repos",
132
+ summary: "Repos in the workspace",
133
+ description: "Every git repo the daemon found in the workspace, with where each one sits and what it is called.",
134
+ })
135
+ .output(ReposListSchema),
136
+ addRepo: oc
137
+ .route({
138
+ method: "POST",
139
+ path: "/workspace/repos",
140
+ summary: "Clone a repo in",
141
+ description: "Clones a repository into the workspace beside the others, using whatever forge credentials the sandbox already holds.",
142
+ })
143
+ .input(CloneRepoSchema)
144
+ .output(CloneResultSchema),
145
+ sync: oc
146
+ .route({
147
+ method: "POST",
148
+ path: "/workspace/sync",
149
+ summary: "Pull every repo up to date",
150
+ description: "Fetches every repo that has a remote and fast-forwards the ones that can move safely, reporting what happened to each. This runs by itself at the start of a turn; call it directly to refresh on demand, or to re-sync a repo that had drifted.",
151
+ })
152
+ .output(WorkspaceSyncSchema),
153
+ templates: oc
154
+ .route({
155
+ method: "GET",
156
+ path: "/workspace/templates",
157
+ summary: "App templates you can add",
158
+ description: "The kinds of app the configured source repo knows how to scaffold, which is what an add-app picker lists.",
159
+ })
160
+ .output(TemplatesListSchema),
161
+ addApps: oc
162
+ .route({
163
+ method: "POST",
164
+ path: "/workspace/repos/{repo}/apps",
165
+ summary: "Scaffold new apps into a repo",
166
+ description: "Starts scaffolding one or more apps inside an existing multi-package repo and answers straight away. Watch the terminal it opens for progress and for anything that goes wrong.",
167
+ })
168
+ .input(AddAppsSchema)
169
+ .output(OkSchema),
170
+ appsList: oc
171
+ .route({
172
+ method: "GET",
173
+ path: "/workspace/repos/{repo}/apps",
174
+ summary: "Apps inside a repo",
175
+ description: "The apps in one multi-package repo, each with its preview address and whether its dev server is up.",
176
+ })
177
+ .input(RepoAppsParamSchema)
178
+ .output(AppsListSchema),
179
+ packageGraph: oc
180
+ .route({
181
+ method: "GET",
182
+ path: "/workspace/repos/{repo}/graph",
183
+ summary: "How a repo's packages depend on each other",
184
+ description: "Every package in one multi-package repo and which of its siblings each one uses, which is what a dependency view draws.",
185
+ })
186
+ .input(RepoAppsParamSchema)
187
+ .output(WorkspaceGraphSchema),
188
+ modules: oc
189
+ .route({
190
+ method: "GET",
191
+ path: "/workspace/modules",
192
+ summary: "Every package across every repo",
193
+ description: "The named packages in the whole workspace, which is what a review list groups changed files under when a reader wants packages rather than paths. Whole-workspace in one answer, because a review spans repos and asking per repo would be a fan-out on every open.",
194
+ })
195
+ .output(WorkspaceModulesSchema),
196
+ startApp: oc
197
+ .route({
198
+ method: "POST",
199
+ path: "/workspace/repos/{repo}/apps/{app}/start",
200
+ summary: "Start an app's dev server",
201
+ description: "Brings up one app's preview server in an attachable terminal, so its address starts answering.",
202
+ })
203
+ .input(AppParamSchema)
204
+ .output(OkSchema),
205
+ stopApp: oc
206
+ .route({
207
+ method: "POST",
208
+ path: "/workspace/repos/{repo}/apps/{app}/stop",
209
+ summary: "Stop an app's dev server",
210
+ description: "Shuts one app's preview server down and frees its port.",
211
+ })
212
+ .input(AppParamSchema)
213
+ .output(OkSchema),
214
+ runTests: oc
215
+ .route({
216
+ method: "POST",
217
+ path: "/workspace/repos/{repo}/tests",
218
+ summary: "Run a project's tests",
219
+ description: "Starts the test run for the projects you name in an attachable terminal and answers straight away. The terminal is where the results appear.",
220
+ })
221
+ .input(RunTestsSchema)
222
+ .output(OkSchema),
32
223
  };
33
224
  //# sourceMappingURL=workspace.contract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"workspace.contract.js","sourceRoot":"","sources":["../../src/contracts/workspace.contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,EACH,aAAa,EACb,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,0BAA0B,EAC1B,QAAQ,EACR,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,4BAA4B,EAC5B,uBAAuB,EACvB,6BAA6B,EAC7B,kBAAkB,EAClB,wBAAwB,EACxB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,qBAAqB,EACrB,4BAA4B,EAC5B,sBAAsB,EACtB,+BAA+B,EAC/B,0BAA0B,EAC1B,sBAAsB,EACtB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,GACtB,MAAM,eAAe,CAAC;AAKvB,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAI7B,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAGlH,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC;IAGtI,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAK1H,WAAW,EAAE,EAAE;SACV,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC;SAC1D,KAAK,CAAC,+BAA+B,CAAC;SACtC,MAAM,CAAC,0BAA0B,CAAC;IAIvC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAGlI,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,2BAA2B,CAAC;IAIpI,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC,MAAM,CAAC,qBAAqB,CAAC;IAI9H,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC,CAAC,MAAM,CAAC,6BAA6B,CAAC;IAIxG,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACtG,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACjH,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACvG,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAKvG,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;IACzF,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0BAA0B,EAAE,CAAC,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,MAAM,CAAC,4BAA4B,CAAC;IAC1I,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC;IACpF,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC;IAGhH,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAGvF,SAAS,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;IAMhG,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IACjH,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,8BAA8B,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;IAG7H,YAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,MAAM,CAAC,oBAAoB,CAAC;IAIxI,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC,MAAM,CAAC,sBAAsB,CAAC;IAC/F,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC/H,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,yCAAyC,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAI7H,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,+BAA+B,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC;CACvH,CAAC"}
1
+ {"version":3,"file":"workspace.contract.js","sourceRoot":"","sources":["../../src/contracts/workspace.contract.ts"],"names":[],"mappings":"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"}