@dxos/plugin-script 0.8.1-main.ae460ac → 0.8.1-staging.391c573

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 (152) hide show
  1. package/dist/lib/browser/{ScriptContainer-S3MAKTV2.mjs → ScriptContainer-4FIJVITA.mjs} +14 -11
  2. package/dist/lib/browser/ScriptContainer-4FIJVITA.mjs.map +7 -0
  3. package/dist/lib/browser/{artifact-definition-4LWPD3DH.mjs → artifact-definition-GTL3ZSF2.mjs} +2 -2
  4. package/dist/lib/browser/artifact-definition-GTL3ZSF2.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-4FWN55UF.mjs → chunk-4SSKJNMZ.mjs} +2 -2
  6. package/dist/lib/browser/chunk-4SSKJNMZ.mjs.map +7 -0
  7. package/dist/lib/browser/{chunk-PFIX5NKP.mjs → chunk-7TZYIGBS.mjs} +77 -11
  8. package/dist/lib/browser/chunk-7TZYIGBS.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-2H6QBQ5Q.mjs → chunk-JL34HAEL.mjs} +2 -2
  10. package/dist/lib/browser/{chunk-2H6QBQ5Q.mjs.map → chunk-JL34HAEL.mjs.map} +1 -1
  11. package/dist/lib/browser/chunk-SFG422OU.mjs +467 -0
  12. package/dist/lib/browser/chunk-SFG422OU.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +14 -13
  14. package/dist/lib/browser/index.mjs.map +2 -2
  15. package/dist/lib/browser/{intent-resolver-5BRHMSBN.mjs → intent-resolver-BJ76DBGE.mjs} +4 -4
  16. package/dist/lib/browser/{intent-resolver-5BRHMSBN.mjs.map → intent-resolver-BJ76DBGE.mjs.map} +1 -1
  17. package/dist/lib/browser/meta.json +1 -1
  18. package/dist/lib/browser/{react-surface-IDIV7XIA.mjs → react-surface-HXCDELEA.mjs} +6 -8
  19. package/dist/lib/browser/react-surface-HXCDELEA.mjs.map +7 -0
  20. package/dist/lib/browser/{settings-LRHZSUEJ.mjs → settings-HIWURVAS.mjs} +2 -2
  21. package/dist/lib/browser/types.mjs +1 -1
  22. package/dist/lib/node/{ScriptContainer-HAN2O43Z.cjs → ScriptContainer-54GQSZCU.cjs} +23 -19
  23. package/dist/lib/node/ScriptContainer-54GQSZCU.cjs.map +7 -0
  24. package/dist/lib/node/{artifact-definition-BXQCFPAH.cjs → artifact-definition-64KZC4UT.cjs} +9 -9
  25. package/dist/lib/node/artifact-definition-64KZC4UT.cjs.map +7 -0
  26. package/dist/lib/node/chunk-45OE3V5M.cjs +493 -0
  27. package/dist/lib/node/chunk-45OE3V5M.cjs.map +7 -0
  28. package/dist/lib/node/{chunk-PPGWSKO4.cjs → chunk-CJ45RBS4.cjs} +82 -17
  29. package/dist/lib/node/chunk-CJ45RBS4.cjs.map +7 -0
  30. package/dist/lib/node/{chunk-3ICET6JB.cjs → chunk-VJ73IG7P.cjs} +6 -6
  31. package/dist/lib/node/{chunk-3ICET6JB.cjs.map → chunk-VJ73IG7P.cjs.map} +2 -2
  32. package/dist/lib/node/{chunk-I57SKIAA.cjs → chunk-XCQNFRZ6.cjs} +5 -5
  33. package/dist/lib/node/chunk-XCQNFRZ6.cjs.map +7 -0
  34. package/dist/lib/node/index.cjs +25 -24
  35. package/dist/lib/node/index.cjs.map +3 -3
  36. package/dist/lib/node/{intent-resolver-L4WJAAV3.cjs → intent-resolver-HQ3FGK2K.cjs} +10 -10
  37. package/dist/lib/node/intent-resolver-HQ3FGK2K.cjs.map +7 -0
  38. package/dist/lib/node/meta.json +1 -1
  39. package/dist/lib/node/{react-surface-JRDQP3MO.cjs → react-surface-QQL4EDUS.cjs} +17 -18
  40. package/dist/lib/node/react-surface-QQL4EDUS.cjs.map +7 -0
  41. package/dist/lib/node/{settings-TR2CA4IH.cjs → settings-ZASSNBKR.cjs} +7 -7
  42. package/dist/lib/node/types.cjs +3 -3
  43. package/dist/lib/node/types.cjs.map +1 -1
  44. package/dist/lib/node-esm/{ScriptContainer-QDP6ASXN.mjs → ScriptContainer-JAQY5F3X.mjs} +14 -11
  45. package/dist/lib/node-esm/ScriptContainer-JAQY5F3X.mjs.map +7 -0
  46. package/dist/lib/node-esm/{artifact-definition-KT4DK2LQ.mjs → artifact-definition-SF46QOO7.mjs} +2 -2
  47. package/dist/lib/node-esm/artifact-definition-SF46QOO7.mjs.map +7 -0
  48. package/dist/lib/node-esm/{chunk-J5LF4LOZ.mjs → chunk-4YUSGXJ2.mjs} +2 -2
  49. package/dist/lib/node-esm/chunk-4YUSGXJ2.mjs.map +7 -0
  50. package/dist/lib/node-esm/{chunk-N52CCVF5.mjs → chunk-FHQKFLM7.mjs} +2 -2
  51. package/dist/lib/node-esm/{chunk-N52CCVF5.mjs.map → chunk-FHQKFLM7.mjs.map} +1 -1
  52. package/dist/lib/node-esm/chunk-LBFWIT3Y.mjs +468 -0
  53. package/dist/lib/node-esm/chunk-LBFWIT3Y.mjs.map +7 -0
  54. package/dist/lib/node-esm/{chunk-UOGXH6JB.mjs → chunk-RI35DJSW.mjs} +77 -11
  55. package/dist/lib/node-esm/chunk-RI35DJSW.mjs.map +7 -0
  56. package/dist/lib/node-esm/index.mjs +14 -13
  57. package/dist/lib/node-esm/index.mjs.map +2 -2
  58. package/dist/lib/node-esm/{intent-resolver-HFXJQI5Y.mjs → intent-resolver-CDTQKQD4.mjs} +4 -4
  59. package/dist/lib/node-esm/{intent-resolver-HFXJQI5Y.mjs.map → intent-resolver-CDTQKQD4.mjs.map} +1 -1
  60. package/dist/lib/node-esm/meta.json +1 -1
  61. package/dist/lib/node-esm/{react-surface-VN7MK3J7.mjs → react-surface-PCW5HN3B.mjs} +6 -8
  62. package/dist/lib/node-esm/react-surface-PCW5HN3B.mjs.map +7 -0
  63. package/dist/lib/node-esm/{settings-Q6B4K7LO.mjs → settings-FDGLXN4I.mjs} +2 -2
  64. package/dist/lib/node-esm/types.mjs +1 -1
  65. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts +2 -1
  66. package/dist/types/src/components/DebugPanel/DebugPanel.d.ts.map +1 -1
  67. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts +2 -1
  68. package/dist/types/src/components/FrameContainer/FrameContainer.d.ts.map +1 -1
  69. package/dist/types/src/components/LogsPanel/LogsPanel.d.ts +8 -0
  70. package/dist/types/src/components/LogsPanel/LogsPanel.d.ts.map +1 -0
  71. package/dist/types/src/components/LogsPanel/index.d.ts +2 -0
  72. package/dist/types/src/components/LogsPanel/index.d.ts.map +1 -0
  73. package/dist/types/src/components/ScriptContainer.d.ts +3 -2
  74. package/dist/types/src/components/ScriptContainer.d.ts.map +1 -1
  75. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts +2 -1
  76. package/dist/types/src/components/ScriptSettings/ScriptSettings.d.ts.map +1 -1
  77. package/dist/types/src/components/ScriptSettingsPanel.d.ts +3 -2
  78. package/dist/types/src/components/ScriptSettingsPanel.d.ts.map +1 -1
  79. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts +3 -2
  80. package/dist/types/src/components/ScriptToolbar/ScriptToolbar.d.ts.map +1 -1
  81. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts +2 -1
  82. package/dist/types/src/components/TypescriptEditor/TypescriptEditor.d.ts.map +1 -1
  83. package/dist/types/src/components/index.d.ts +2 -1
  84. package/dist/types/src/components/index.d.ts.map +1 -1
  85. package/dist/types/src/hooks/deploy.d.ts +23 -0
  86. package/dist/types/src/hooks/deploy.d.ts.map +1 -1
  87. package/dist/types/src/hooks/format.d.ts +1 -1
  88. package/dist/types/src/hooks/format.d.ts.map +1 -1
  89. package/dist/types/src/hooks/template.d.ts +1 -1
  90. package/dist/types/src/hooks/template.d.ts.map +1 -1
  91. package/dist/types/src/hooks/useToolbarAction.d.ts +1 -1
  92. package/dist/types/src/hooks/useToolbarAction.d.ts.map +1 -1
  93. package/dist/types/src/hooks/useToolbarState.d.ts.map +1 -1
  94. package/dist/types/src/hooks/view.d.ts +1 -1
  95. package/dist/types/src/hooks/view.d.ts.map +1 -1
  96. package/dist/types/src/templates/discord.d.ts.map +1 -1
  97. package/dist/types/src/translations.d.ts +3 -3
  98. package/dist/types/src/translations.d.ts.map +1 -1
  99. package/dist/types/src/types.d.ts +1 -1
  100. package/dist/types/src/types.d.ts.map +1 -1
  101. package/package.json +47 -44
  102. package/src/ScriptPlugin.tsx +1 -1
  103. package/src/capabilities/artifact-definition.ts +1 -1
  104. package/src/capabilities/intent-resolver.ts +1 -1
  105. package/src/capabilities/react-surface.tsx +1 -1
  106. package/src/components/LogsPanel/LogsPanel.tsx +111 -0
  107. package/src/components/LogsPanel/index.ts +5 -0
  108. package/src/components/ScriptContainer.tsx +9 -5
  109. package/src/components/ScriptSettingsPanel.tsx +1 -1
  110. package/src/components/ScriptToolbar/ScriptToolbar.tsx +1 -1
  111. package/src/components/TypescriptEditor/TypescriptEditor.tsx +1 -0
  112. package/src/components/index.ts +1 -0
  113. package/src/hooks/deploy.ts +4 -5
  114. package/src/hooks/format.ts +1 -1
  115. package/src/hooks/template.ts +1 -1
  116. package/src/hooks/useToolbarAction.ts +1 -1
  117. package/src/hooks/useToolbarState.ts +1 -0
  118. package/src/hooks/view.ts +2 -5
  119. package/src/templates/discord.ts +12 -5
  120. package/src/translations.ts +2 -4
  121. package/src/types.ts +1 -1
  122. package/dist/lib/browser/ScriptContainer-S3MAKTV2.mjs.map +0 -7
  123. package/dist/lib/browser/artifact-definition-4LWPD3DH.mjs.map +0 -7
  124. package/dist/lib/browser/chunk-4FWN55UF.mjs.map +0 -7
  125. package/dist/lib/browser/chunk-5SXOHNAK.mjs +0 -240
  126. package/dist/lib/browser/chunk-5SXOHNAK.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-FWK7MJLK.mjs +0 -234
  128. package/dist/lib/browser/chunk-FWK7MJLK.mjs.map +0 -7
  129. package/dist/lib/browser/chunk-PFIX5NKP.mjs.map +0 -7
  130. package/dist/lib/browser/react-surface-IDIV7XIA.mjs.map +0 -7
  131. package/dist/lib/node/ScriptContainer-HAN2O43Z.cjs.map +0 -7
  132. package/dist/lib/node/artifact-definition-BXQCFPAH.cjs.map +0 -7
  133. package/dist/lib/node/chunk-7DFSSJOL.cjs +0 -261
  134. package/dist/lib/node/chunk-7DFSSJOL.cjs.map +0 -7
  135. package/dist/lib/node/chunk-I57SKIAA.cjs.map +0 -7
  136. package/dist/lib/node/chunk-K3ZZWVXS.cjs +0 -269
  137. package/dist/lib/node/chunk-K3ZZWVXS.cjs.map +0 -7
  138. package/dist/lib/node/chunk-PPGWSKO4.cjs.map +0 -7
  139. package/dist/lib/node/intent-resolver-L4WJAAV3.cjs.map +0 -7
  140. package/dist/lib/node/react-surface-JRDQP3MO.cjs.map +0 -7
  141. package/dist/lib/node-esm/ScriptContainer-QDP6ASXN.mjs.map +0 -7
  142. package/dist/lib/node-esm/artifact-definition-KT4DK2LQ.mjs.map +0 -7
  143. package/dist/lib/node-esm/chunk-2AFXX34U.mjs +0 -241
  144. package/dist/lib/node-esm/chunk-2AFXX34U.mjs.map +0 -7
  145. package/dist/lib/node-esm/chunk-HLRR6EJX.mjs +0 -235
  146. package/dist/lib/node-esm/chunk-HLRR6EJX.mjs.map +0 -7
  147. package/dist/lib/node-esm/chunk-J5LF4LOZ.mjs.map +0 -7
  148. package/dist/lib/node-esm/chunk-UOGXH6JB.mjs.map +0 -7
  149. package/dist/lib/node-esm/react-surface-VN7MK3J7.mjs.map +0 -7
  150. /package/dist/lib/browser/{settings-LRHZSUEJ.mjs.map → settings-HIWURVAS.mjs.map} +0 -0
  151. /package/dist/lib/node/{settings-TR2CA4IH.cjs.map → settings-ZASSNBKR.cjs.map} +0 -0
  152. /package/dist/lib/node-esm/{settings-Q6B4K7LO.mjs.map → settings-FDGLXN4I.mjs.map} +0 -0
@@ -34,6 +34,29 @@ export declare const createDeploy: (state: Partial<DeployState>) => {
34
34
  target: string;
35
35
  }[];
36
36
  };
37
+ export declare const useDeployDeps: ({ script }: {
38
+ script: ScriptType;
39
+ }) => {
40
+ space: import("@dxos/client-protocol").Space | undefined;
41
+ fn: import("@dxos/echo-schema").TypedObjectFields<{
42
+ name: typeof import("effect/Schema").NonEmptyString;
43
+ version: typeof import("effect/Schema").String;
44
+ description: import("effect/Schema").optional<typeof import("effect/Schema").String>;
45
+ source: import("effect/Schema").optional<import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
46
+ name: import("effect/Schema").optional<typeof import("effect/Schema").String>;
47
+ description: import("effect/Schema").optional<typeof import("effect/Schema").String>;
48
+ changed: import("effect/Schema").optional<typeof import("effect/Schema").Boolean>;
49
+ source: import("@dxos/echo-schema").Ref$<import("@dxos/echo-schema").TypedObjectFields<{
50
+ content: typeof import("effect/Schema").String;
51
+ }, import("@dxos/echo-schema").TypedObjectOptions>>;
52
+ }, import("@dxos/echo-schema").TypedObjectOptions>>>;
53
+ inputSchema: import("effect/Schema").optional<import("effect/Schema").Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
54
+ outputSchema: import("effect/Schema").optional<import("effect/Schema").Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
55
+ binding: import("effect/Schema").optional<typeof import("effect/Schema").String>;
56
+ }, import("@dxos/echo-schema").TypedObjectOptions>;
57
+ client: import("@dxos/client").Client;
58
+ existingFunctionUrl: string | undefined;
59
+ };
37
60
  export declare const useDeployState: ({ state, script }: {
38
61
  state: Partial<DeployState>;
39
62
  script: ScriptType;
@@ -1 +1 @@
1
- {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../../src/hooks/deploy.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,UAAU,EAMhB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,OAAO,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;CA8BvD,CAAC;AAUF,eAAO,MAAM,cAAc,sBAAuB;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SAepG,CAAC;AAEF,eAAO,MAAM,gBAAgB,sBAAuB;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,wBAqEtG,CAAC;AAEF,eAAO,MAAM,cAAc,cAAe;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,wBAMhD,CAAC"}
1
+ {"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../../../src/hooks/deploy.ts"],"names":[],"mappings":"AAMA,OAAO,EAEL,KAAK,UAAU,EAMhB,MAAM,iBAAiB,CAAC;AAQzB,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAGxC,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG;IACpC,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,YAAY,UAAW,OAAO,CAAC,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;CA8BvD,CAAC;AAEF,eAAO,MAAM,aAAa,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE;;;;;;wDAzBO,mBACzD,cACN,mBAAmB;;;;2BAGtB,mBAAmB,cAAc,mBAAmB;;sBAGQ,mBACrD;kBACqB,mBAAkB;;;;;;;CAqBlD,CAAC;AAEF,eAAO,MAAM,cAAc,sBAAuB;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,SAepG,CAAC;AAEF,eAAO,MAAM,gBAAgB,sBAAuB;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,wBAoEtG,CAAC;AAEF,eAAO,MAAM,cAAc,cAAe;IAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;CAAE,wBAMhD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ScriptType } from '@dxos/functions';
1
+ import { type ScriptType } from '@dxos/functions/types';
2
2
  export type FormatActionProperties = {
3
3
  type: 'format';
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/hooks/format.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAMlD,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAUxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,wBAiB9C,CAAC"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../../src/hooks/format.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,MAAM,sBAAsB,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAExD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;CAUxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,wBAiB9C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ScriptType } from '@dxos/functions';
1
+ import { type ScriptType } from '@dxos/functions/types';
2
2
  export type TemplateActionProperties = {
3
3
  type: 'template';
4
4
  value: string;
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/hooks/template.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO7E,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAmB3E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;CAUhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,kBAE1D,MAAM,SAiBtB,CAAC"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../../../src/hooks/template.ts"],"names":[],"mappings":"AAMA,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAOnF,MAAM,MAAM,wBAAwB,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAmB3E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;CAUhC,CAAC;AAEF,eAAO,MAAM,wBAAwB,eAAgB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,kBAE1D,MAAM,SAiBtB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type ScriptType } from '@dxos/functions';
1
+ import { type ScriptType } from '@dxos/functions/types';
2
2
  import { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';
3
3
  import { type DeployActionProperties } from './deploy';
4
4
  import { type FormatActionProperties } from './format';
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbarAction.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useToolbarAction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,KAAK,sBAAsB,EAAoC,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,KAAK,wBAAwB,EAA4B,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,6BAA6B,GACrC,wBAAwB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAE5E,eAAO,MAAM,gBAAgB,UAAW;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,sBA6BxF,CAAC"}
1
+ {"version":3,"file":"useToolbarAction.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useToolbarAction.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,OAAO,EAAE,KAAK,sBAAsB,EAAoC,MAAM,UAAU,CAAC;AACzF,OAAO,EAAE,KAAK,sBAAsB,EAAoB,MAAM,UAAU,CAAC;AACzE,OAAO,EAAE,KAAK,wBAAwB,EAA4B,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEnD,MAAM,MAAM,6BAA6B,GACrC,wBAAwB,GACxB,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,CAAC;AAE3B,MAAM,MAAM,mBAAmB,GAAG,UAAU,CAAC,6BAA6B,CAAC,CAAC;AAE5E,eAAO,MAAM,gBAAgB,UAAW;IAAE,KAAK,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,sBA6BxF,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useToolbarState.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useToolbarState.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAElE,eAAO,MAAM,eAAe,kBAAkB,kBAAkB;;;;;GAE/D,CAAC"}
1
+ {"version":3,"file":"useToolbarState.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useToolbarState.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,kBAAkB,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC,CAAC;AAGlE,eAAO,MAAM,eAAe,kBAAkB,kBAAkB;;;;;GAE/D,CAAC"}
@@ -1,4 +1,4 @@
1
- export type ViewType = 'editor' | 'split' | 'debug';
1
+ export type ViewType = 'editor' | 'split' | 'logs';
2
2
  export type ViewState = {
3
3
  view: ViewType;
4
4
  };
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/hooks/view.ts"],"names":[],"mappings":"AASA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;AAEpD,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AA+BrE,eAAO,MAAM,UAAU,UAAW,OAAO,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAUnD,CAAC"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../../src/hooks/view.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,SAAS,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAE3C,MAAM,MAAM,oBAAoB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAA;CAAE,CAAC;AA6BrE,eAAO,MAAM,UAAU,UAAW,OAAO,CAAC,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;CAUnD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../../src/templates/discord.ts"],"names":[],"mappings":";AA8BA,wBAwEG"}
1
+ {"version":3,"file":"discord.d.ts","sourceRoot":"","sources":["../../../../src/templates/discord.ts"],"names":[],"mappings":";AA8BA,wBA+EG"}
@@ -37,7 +37,7 @@ declare const _default: {
37
37
  'view group label'?: undefined;
38
38
  'view editor label'?: undefined;
39
39
  'view split label'?: undefined;
40
- 'view debug label'?: undefined;
40
+ 'view logs label'?: undefined;
41
41
  'template select group label'?: undefined;
42
42
  'function panel label'?: undefined;
43
43
  } | {
@@ -76,7 +76,7 @@ declare const _default: {
76
76
  'view group label': string;
77
77
  'view editor label': string;
78
78
  'view split label': string;
79
- 'view debug label': string;
79
+ 'view logs label': string;
80
80
  'template select group label': string;
81
81
  'function panel label': string;
82
82
  'typename label'?: undefined;
@@ -117,7 +117,7 @@ declare const _default: {
117
117
  'view group label': string;
118
118
  'view editor label': string;
119
119
  'view split label': string;
120
- 'view debug label': string;
120
+ 'view logs label': string;
121
121
  'template select group label': string;
122
122
  'function panel label': string;
123
123
  };
@@ -1 +1 @@
1
- {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAkDE"}
1
+ {"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA,wBAgDE"}
@@ -1,5 +1,5 @@
1
1
  import { S } from '@dxos/echo-schema';
2
- import { ScriptType } from '@dxos/functions';
2
+ import { ScriptType } from '@dxos/functions/types';
3
3
  export declare namespace ScriptAction {
4
4
  export const CreateScriptSchema: S.Struct<{
5
5
  name: S.optional<typeof S.String>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,yBAAiB,YAAY,CAAC;IAG5B,MAAM,CAAC,MAAM,kBAAkB;;;MAI7B,CAAC;IAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;;;;;;;;;;;;;;IAEzE,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;CACN;AAED,eAAO,MAAM,oBAAoB;;GAIhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAKnD,yBAAiB,YAAY,CAAC;IAG5B,MAAM,CAAC,MAAM,kBAAkB;;;MAI7B,CAAC;IAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;;;;;;;;;;;;;;IAEzE,MAAM,OAAO,MAAO,SAAQ,WAK1B;KAAG;;CACN;AAED,eAAO,MAAM,oBAAoB;;GAIhC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-script",
3
- "version": "0.8.1-main.ae460ac",
3
+ "version": "0.8.1-staging.391c573",
4
4
  "description": "Braneframe notebook plugin",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -53,63 +53,66 @@
53
53
  "prettier": "^3.2.4",
54
54
  "react-syntax-highlighter": "^15.5.0",
55
55
  "typescript": "^5.7.2",
56
- "@dxos/artifact": "0.8.1-main.ae460ac",
57
- "@dxos/app-framework": "0.8.1-main.ae460ac",
58
- "@dxos/assistant": "0.8.1-main.ae460ac",
59
- "@dxos/async": "0.8.1-main.ae460ac",
60
- "@dxos/client": "0.8.1-main.ae460ac",
61
- "@dxos/client-protocol": "0.8.1-main.ae460ac",
62
- "@dxos/compute": "0.8.1-main.ae460ac",
63
- "@dxos/echo-schema": "0.8.1-main.ae460ac",
64
- "@dxos/debug": "0.8.1-main.ae460ac",
65
- "@dxos/functions": "0.8.1-main.ae460ac",
66
- "@dxos/invariant": "0.8.1-main.ae460ac",
67
- "@dxos/live-object": "0.8.1-main.ae460ac",
68
- "@dxos/keys": "0.8.1-main.ae460ac",
69
- "@dxos/local-storage": "0.8.1-main.ae460ac",
70
- "@dxos/log": "0.8.1-main.ae460ac",
71
- "@dxos/plugin-client": "0.8.1-main.ae460ac",
72
- "@dxos/plugin-deck": "0.8.1-main.ae460ac",
73
- "@dxos/plugin-graph": "0.8.1-main.ae460ac",
74
- "@dxos/plugin-explorer": "0.8.1-main.ae460ac",
75
- "@dxos/plugin-markdown": "0.8.1-main.ae460ac",
76
- "@dxos/plugin-space": "0.8.1-main.ae460ac",
77
- "@dxos/plugin-theme": "0.8.1-main.ae460ac",
78
- "@dxos/protocols": "0.8.1-main.ae460ac",
79
- "@dxos/react-client": "0.8.1-main.ae460ac",
80
- "@dxos/plugin-stack": "0.8.1-main.ae460ac",
81
- "@dxos/react-ui-attention": "0.8.1-main.ae460ac",
82
- "@dxos/react-ui-form": "0.8.1-main.ae460ac",
83
- "@dxos/react-ui-stack": "0.8.1-main.ae460ac",
84
- "@dxos/react-ui-editor": "0.8.1-main.ae460ac",
85
- "@dxos/react-ui-menu": "0.8.1-main.ae460ac",
86
- "@dxos/react-ui-syntax-highlighter": "0.8.1-main.ae460ac",
87
- "@dxos/schema": "0.8.1-main.ae460ac",
88
- "@dxos/rpc": "0.8.1-main.ae460ac",
89
- "@dxos/rpc-tunnel": "0.8.1-main.ae460ac",
90
- "@dxos/util": "0.8.1-main.ae460ac"
56
+ "@dxos/app-framework": "0.8.1-staging.391c573",
57
+ "@dxos/artifact": "0.8.1-staging.391c573",
58
+ "@dxos/assistant": "0.8.1-staging.391c573",
59
+ "@dxos/client-protocol": "0.8.1-staging.391c573",
60
+ "@dxos/async": "0.8.1-staging.391c573",
61
+ "@dxos/client": "0.8.1-staging.391c573",
62
+ "@dxos/compute": "0.8.1-staging.391c573",
63
+ "@dxos/echo-protocol": "0.8.1-staging.391c573",
64
+ "@dxos/debug": "0.8.1-staging.391c573",
65
+ "@dxos/echo-schema": "0.8.1-staging.391c573",
66
+ "@dxos/functions": "0.8.1-staging.391c573",
67
+ "@dxos/invariant": "0.8.1-staging.391c573",
68
+ "@dxos/keys": "0.8.1-staging.391c573",
69
+ "@dxos/live-object": "0.8.1-staging.391c573",
70
+ "@dxos/plugin-client": "0.8.1-staging.391c573",
71
+ "@dxos/local-storage": "0.8.1-staging.391c573",
72
+ "@dxos/log": "0.8.1-staging.391c573",
73
+ "@dxos/plugin-deck": "0.8.1-staging.391c573",
74
+ "@dxos/plugin-graph": "0.8.1-staging.391c573",
75
+ "@dxos/plugin-space": "0.8.1-staging.391c573",
76
+ "@dxos/plugin-explorer": "0.8.1-staging.391c573",
77
+ "@dxos/plugin-stack": "0.8.1-staging.391c573",
78
+ "@dxos/plugin-markdown": "0.8.1-staging.391c573",
79
+ "@dxos/plugin-theme": "0.8.1-staging.391c573",
80
+ "@dxos/react-edge-client": "0.8.1-staging.391c573",
81
+ "@dxos/protocols": "0.8.1-staging.391c573",
82
+ "@dxos/react-client": "0.8.1-staging.391c573",
83
+ "@dxos/react-ui-attention": "0.8.1-staging.391c573",
84
+ "@dxos/react-ui-editor": "0.8.1-staging.391c573",
85
+ "@dxos/react-ui-list": "0.8.1-staging.391c573",
86
+ "@dxos/react-ui-form": "0.8.1-staging.391c573",
87
+ "@dxos/react-ui-menu": "0.8.1-staging.391c573",
88
+ "@dxos/react-ui-stack": "0.8.1-staging.391c573",
89
+ "@dxos/react-ui-syntax-highlighter": "0.8.1-staging.391c573",
90
+ "@dxos/rpc-tunnel": "0.8.1-staging.391c573",
91
+ "@dxos/rpc": "0.8.1-staging.391c573",
92
+ "@dxos/schema": "0.8.1-staging.391c573",
93
+ "@dxos/util": "0.8.1-staging.391c573"
91
94
  },
92
95
  "devDependencies": {
93
96
  "@phosphor-icons/react": "^2.1.5",
94
97
  "@types/lodash.get": "^4.4.7",
95
98
  "@types/react": "~18.2.0",
96
99
  "@types/react-dom": "~18.2.0",
97
- "effect": "^3.12.3",
100
+ "effect": "3.13.3",
98
101
  "react": "~18.2.0",
99
102
  "react-dom": "~18.2.0",
100
103
  "vite": "5.4.7",
101
- "@dxos/random": "0.8.1-main.ae460ac",
102
- "@dxos/react-ui": "0.8.1-main.ae460ac",
103
- "@dxos/react-ui-theme": "0.8.1-main.ae460ac",
104
- "@dxos/storybook-utils": "0.8.1-main.ae460ac"
104
+ "@dxos/random": "0.8.1-staging.391c573",
105
+ "@dxos/react-ui": "0.8.1-staging.391c573",
106
+ "@dxos/react-ui-theme": "0.8.1-staging.391c573",
107
+ "@dxos/storybook-utils": "0.8.1-staging.391c573"
105
108
  },
106
109
  "peerDependencies": {
107
110
  "@phosphor-icons/react": "^2.1.5",
108
- "effect": "^3.12.3",
111
+ "effect": "3.13.3",
109
112
  "react": "~18.2.0",
110
113
  "react-dom": "~18.2.0",
111
- "@dxos/react-ui": "0.8.1-main.ae460ac",
112
- "@dxos/react-ui-theme": "0.8.1-main.ae460ac"
114
+ "@dxos/react-ui-theme": "0.8.1-staging.391c573",
115
+ "@dxos/react-ui": "0.8.1-staging.391c573"
113
116
  },
114
117
  "publishConfig": {
115
118
  "access": "public"
@@ -5,7 +5,7 @@
5
5
  // @ts-ignore
6
6
 
7
7
  import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';
8
- import { ScriptType } from '@dxos/functions';
8
+ import { ScriptType } from '@dxos/functions/types';
9
9
  import { RefArray } from '@dxos/live-object';
10
10
  import { ClientEvents } from '@dxos/plugin-client';
11
11
  import { DeckCapabilities, DeckEvents } from '@dxos/plugin-deck';
@@ -6,7 +6,7 @@ import { Capabilities, contributes, createIntent, type PromiseIntentDispatcher }
6
6
  import { defineArtifact, defineTool, ToolResult } from '@dxos/artifact';
7
7
  import { createArtifactElement } from '@dxos/assistant';
8
8
  import { ObjectId, S } from '@dxos/echo-schema';
9
- import { ScriptType } from '@dxos/functions';
9
+ import { ScriptType } from '@dxos/functions/types';
10
10
  import { invariant } from '@dxos/invariant';
11
11
  import { SpaceAction } from '@dxos/plugin-space/types';
12
12
  import { create, makeRef, type Space } from '@dxos/react-client/echo';
@@ -5,7 +5,7 @@
5
5
  import { Octokit } from '@octokit/core';
6
6
 
7
7
  import { contributes, Capabilities, createResolver } from '@dxos/app-framework';
8
- import { ScriptType } from '@dxos/functions';
8
+ import { ScriptType } from '@dxos/functions/types';
9
9
  import { create, makeRef } from '@dxos/live-object';
10
10
  import { TextType } from '@dxos/schema';
11
11
 
@@ -5,7 +5,7 @@
5
5
  import React from 'react';
6
6
 
7
7
  import { Capabilities, contributes, createSurface, useCapability } from '@dxos/app-framework';
8
- import { ScriptType } from '@dxos/functions';
8
+ import { ScriptType } from '@dxos/functions/types';
9
9
  import { SettingsStore } from '@dxos/local-storage';
10
10
  import { Clipboard } from '@dxos/react-ui';
11
11
 
@@ -0,0 +1,111 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ import React, { useCallback, useMemo, useState } from 'react';
6
+
7
+ import { decodeReference } from '@dxos/echo-protocol';
8
+ import { type TraceEvent, type InvocationTraceEvent, type ScriptType } from '@dxos/functions/types';
9
+ import { useEdgeClient, useQueue } from '@dxos/react-edge-client';
10
+ import { Icon, List, ListItem, useTranslation, type ThemedClassName } from '@dxos/react-ui';
11
+ import { mx } from '@dxos/react-ui-theme';
12
+
13
+ import { useDeployDeps } from '../../hooks';
14
+ import { SCRIPT_PLUGIN } from '../../meta';
15
+
16
+ export type LogsPanelProps = ThemedClassName<{
17
+ script: ScriptType;
18
+ }>;
19
+
20
+ export const LogsPanel = ({ script, classNames }: LogsPanelProps) => {
21
+ const { t } = useTranslation(SCRIPT_PLUGIN);
22
+ // TODO(wittjosiah): Refactor these hooks.
23
+ const { space, existingFunctionUrl } = useDeployDeps({ script });
24
+ const edgeClient = useEdgeClient();
25
+ const invocationTraceQueue = useQueue<InvocationTraceEvent>(edgeClient, space?.properties.invocationTraceQueue?.dxn, {
26
+ pollInterval: 500,
27
+ });
28
+ const [selected, setSelected] = useState<InvocationTraceEvent>();
29
+ const workerDxn = `dxn:worker:${existingFunctionUrl?.split('/').at(-1)}`;
30
+
31
+ if (!invocationTraceQueue) {
32
+ return <div>{t('no invocations message')}</div>;
33
+ }
34
+
35
+ const handleOpenChange = useCallback((trace: InvocationTraceEvent, open: boolean) => {
36
+ setSelected(open ? trace : undefined);
37
+ }, []);
38
+
39
+ return (
40
+ <List classNames={mx('overflow-y-auto', classNames)}>
41
+ {invocationTraceQueue.items
42
+ .filter((trace) => decodeReference(trace.invocationTarget).dxn?.toString() === workerDxn)
43
+ .map((trace) => (
44
+ <InvocationTraceItem
45
+ key={trace.id}
46
+ trace={trace}
47
+ open={selected?.id === trace.id}
48
+ setOpen={handleOpenChange}
49
+ />
50
+ ))}
51
+ </List>
52
+ );
53
+ };
54
+
55
+ const InvocationTraceItem = ({
56
+ trace,
57
+ open,
58
+ setOpen,
59
+ }: {
60
+ trace: InvocationTraceEvent;
61
+ open?: boolean;
62
+ setOpen?: (trace: InvocationTraceEvent, open: boolean) => void;
63
+ }) => {
64
+ const edgeClient = useEdgeClient();
65
+ const eventQueue = useQueue<TraceEvent>(
66
+ edgeClient,
67
+ open ? decodeReference(trace.invocationTraceQueue).dxn : undefined,
68
+ );
69
+
70
+ const handleOpenChange = useCallback(
71
+ (open: boolean) => {
72
+ setOpen?.(trace, open);
73
+ },
74
+ [trace, setOpen],
75
+ );
76
+
77
+ const logs = useMemo(() => eventQueue?.items.flatMap((event) => event.logs), [eventQueue?.items]);
78
+ const heading =
79
+ 'bodyText' in trace.input && typeof trace.input.bodyText === 'string'
80
+ ? trace.input.bodyText
81
+ : JSON.stringify(trace.input);
82
+
83
+ return (
84
+ <ListItem.Root key={trace.id} collapsible open={open} onOpenChange={handleOpenChange}>
85
+ <div className='flex items-center gap-2'>
86
+ <ListItem.OpenTrigger />
87
+ <ListItem.Endcap classNames='flex items-center justify-center'>
88
+ <Icon icon={trace.outcome === 'success' ? 'ph--check--regular' : 'ph--x--regular'} size={5} />
89
+ </ListItem.Endcap>
90
+ <ListItem.Heading classNames='flex-1 flex items-center gap-2 truncate'>
91
+ <span>{new Date(trace.timestampMs).toLocaleString()}</span>
92
+ <span>{heading}</span>
93
+ </ListItem.Heading>
94
+ </div>
95
+ {logs && (
96
+ <ListItem.CollapsibleContent>
97
+ <div className='flex items-center gap-2'>
98
+ <span>Duration:</span>
99
+ <span>{trace.durationMs}ms</span>
100
+ </div>
101
+ <pre>
102
+ <div>{JSON.stringify(trace.input, null, 2)}</div>
103
+ {logs.map((log, index) => {
104
+ return <div key={index}>{JSON.stringify(log, null, 2)}</div>;
105
+ })}
106
+ </pre>
107
+ </ListItem.CollapsibleContent>
108
+ )}
109
+ </ListItem.Root>
110
+ );
111
+ };
@@ -0,0 +1,5 @@
1
+ //
2
+ // Copyright 2024 DXOS.org
3
+ //
4
+
5
+ export * from './LogsPanel';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React, { useMemo } from 'react';
6
6
 
7
- import { type ScriptType } from '@dxos/functions';
7
+ import { type ScriptType } from '@dxos/functions/types';
8
8
  import { createDocAccessor, getSpace } from '@dxos/react-client/echo';
9
9
  import { useIdentity } from '@dxos/react-client/halo';
10
10
  import { type ThemedClassName } from '@dxos/react-ui';
@@ -12,7 +12,7 @@ import { createDataExtensions, listener, stackItemContentEditorClassNames } from
12
12
  import { StackItem } from '@dxos/react-ui-stack';
13
13
  import { mx } from '@dxos/react-ui-theme';
14
14
 
15
- import { DebugPanel } from './DebugPanel';
15
+ import { LogsPanel } from './LogsPanel';
16
16
  import { ScriptToolbar } from './ScriptToolbar';
17
17
  import { TypescriptEditor, type TypescriptEditorProps } from './TypescriptEditor';
18
18
  import { useDeployState, useToolbarState } from '../hooks';
@@ -57,23 +57,27 @@ export const ScriptContainer = ({
57
57
  const state = useToolbarState({ view: 'editor' });
58
58
  useDeployState({ state, script });
59
59
 
60
+ if (!space) {
61
+ return null;
62
+ }
63
+
60
64
  return (
61
65
  <StackItem.Content toolbar>
62
66
  <ScriptToolbar state={state} role={role} script={script} />
63
67
  <div role='none' className={mx('flex flex-col w-full overflow-hidden divide-y divide-separator', classNames)}>
64
- {state.view !== 'debug' && (
68
+ {state.view !== 'logs' && (
65
69
  <TypescriptEditor
66
70
  id={script.id}
67
71
  env={env}
68
72
  initialValue={script.source?.target?.content}
69
73
  extensions={extensions}
70
- className={stackItemContentEditorClassNames(role)}
74
+ className={mx(stackItemContentEditorClassNames(role), 'grow')}
71
75
  inputMode={settings.editorInputMode}
72
76
  toolbar
73
77
  />
74
78
  )}
75
79
 
76
- {state.view !== 'editor' && <DebugPanel functionUrl={state.functionUrl} />}
80
+ {state.view !== 'editor' && <LogsPanel script={script} classNames='grow' />}
77
81
  </div>
78
82
  </StackItem.Content>
79
83
  );
@@ -6,7 +6,7 @@ import { Octokit } from '@octokit/core';
6
6
  import React, { type ChangeEvent, useCallback, useEffect, useState } from 'react';
7
7
 
8
8
  import { createIntent, SettingsAction, useIntentDispatcher } from '@dxos/app-framework';
9
- import { FunctionType, type ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions';
9
+ import { FunctionType, type ScriptType, getInvocationUrl, getUserFunctionUrlInMetadata } from '@dxos/functions/types';
10
10
  import { log } from '@dxos/log';
11
11
  import { useClient } from '@dxos/react-client';
12
12
  import { Filter, getMeta, getSpace, useQuery } from '@dxos/react-client/echo';
@@ -4,7 +4,7 @@
4
4
 
5
5
  import React, { useCallback } from 'react';
6
6
 
7
- import { type ScriptType } from '@dxos/functions';
7
+ import { type ScriptType } from '@dxos/functions/types';
8
8
  import { fullyQualifiedId } from '@dxos/react-client/echo';
9
9
  import { ElevationProvider, type ThemedClassName } from '@dxos/react-ui';
10
10
  import { stackItemContentToolbarClassNames } from '@dxos/react-ui-editor';
@@ -73,6 +73,7 @@ export const TypescriptEditor = ({
73
73
  '.cm-gutters': {
74
74
  // Match margin from content.
75
75
  marginTop: '16px',
76
+ background: 'var(--dx-baseSurface)',
76
77
  },
77
78
  }),
78
79
  InputModeExtensions[inputMode],
@@ -5,6 +5,7 @@
5
5
  import { lazy } from 'react';
6
6
 
7
7
  export * from './DebugPanel';
8
+ export * from './LogsPanel';
8
9
  export * from './ScriptSettings';
9
10
  export * from './ScriptSettingsPanel';
10
11
 
@@ -64,7 +64,7 @@ export const createDeploy = (state: Partial<DeployState>) => {
64
64
  };
65
65
  };
66
66
 
67
- const useDeployDeps = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {
67
+ export const useDeployDeps = ({ script }: { script: ScriptType }) => {
68
68
  const space = getSpace(script);
69
69
  const [fn] = useQuery(space, Filter.schema(FunctionType, { source: script }));
70
70
  const client = useClient();
@@ -73,7 +73,7 @@ const useDeployDeps = ({ state, script }: { state: Partial<DeployState>; script:
73
73
  };
74
74
 
75
75
  export const useDeployState = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {
76
- const { space, client, existingFunctionUrl } = useDeployDeps({ state, script });
76
+ const { space, client, existingFunctionUrl } = useDeployDeps({ script });
77
77
  useEffect(() => {
78
78
  if (!existingFunctionUrl) {
79
79
  return;
@@ -90,7 +90,7 @@ export const useDeployState = ({ state, script }: { state: Partial<DeployState>;
90
90
  };
91
91
 
92
92
  export const useDeployHandler = ({ state, script }: { state: Partial<DeployState>; script: ScriptType }) => {
93
- const { space, fn, client, existingFunctionUrl } = useDeployDeps({ state, script });
93
+ const { space, fn, client, existingFunctionUrl } = useDeployDeps({ script });
94
94
  const { t } = useTranslation(SCRIPT_PLUGIN);
95
95
 
96
96
  return useCallback(async () => {
@@ -143,6 +143,7 @@ export const useDeployHandler = ({ state, script }: { state: Partial<DeployState
143
143
  } else {
144
144
  log.verbose('no input schema in function metadata', { functionId });
145
145
  }
146
+
146
147
  if (meta.outputSchema) {
147
148
  deployedFunction.outputSchema = meta.outputSchema;
148
149
  } else {
@@ -150,8 +151,6 @@ export const useDeployHandler = ({ state, script }: { state: Partial<DeployState
150
151
  }
151
152
 
152
153
  setUserFunctionUrlInMetadata(getMeta(deployedFunction), `/${space.id}/${functionId}`);
153
-
154
- state.view = 'split';
155
154
  } catch (err: any) {
156
155
  log.catch(err);
157
156
  state.error = t('upload failed label');
@@ -7,7 +7,7 @@ import prettierPluginEstree from 'prettier/plugins/estree';
7
7
  import prettierPluginTypescript from 'prettier/plugins/typescript';
8
8
  import { useCallback } from 'react';
9
9
 
10
- import { type ScriptType } from '@dxos/functions';
10
+ import { type ScriptType } from '@dxos/functions/types';
11
11
  import { log } from '@dxos/log';
12
12
  import { createMenuAction } from '@dxos/react-ui-menu';
13
13
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { useCallback } from 'react';
6
6
 
7
- import { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions';
7
+ import { FUNCTIONS_PRESET_META_KEY, type ScriptType } from '@dxos/functions/types';
8
8
  import { getMeta } from '@dxos/live-object';
9
9
  import { createMenuItemGroup, createMenuAction } from '@dxos/react-ui-menu';
10
10
 
@@ -4,7 +4,7 @@
4
4
 
5
5
  import { useCallback } from 'react';
6
6
 
7
- import { type ScriptType } from '@dxos/functions';
7
+ import { type ScriptType } from '@dxos/functions/types';
8
8
  import { log } from '@dxos/log';
9
9
  import { type MenuAction, type MenuActionHandler } from '@dxos/react-ui-menu';
10
10
 
@@ -11,6 +11,7 @@ import { type ViewState } from './view';
11
11
 
12
12
  export type ScriptToolbarState = Partial<DeployState & ViewState>;
13
13
 
14
+ // TODO(burdon): Replace with context provider?
14
15
  export const useToolbarState = (initialState: ScriptToolbarState = {}) => {
15
16
  return useMemo(() => create<ScriptToolbarState>(initialState), []);
16
17
  };
package/src/hooks/view.ts CHANGED
@@ -6,8 +6,7 @@ import { createMenuAction, createMenuItemGroup } from '@dxos/react-ui-menu';
6
6
 
7
7
  import { SCRIPT_PLUGIN } from '../meta';
8
8
 
9
- // TODO(wittjosiah): Replace debug with logs.
10
- export type ViewType = 'editor' | 'split' | 'debug'; // 'logs';
9
+ export type ViewType = 'editor' | 'split' | 'logs';
11
10
 
12
11
  export type ViewState = { view: ViewType };
13
12
 
@@ -16,9 +15,7 @@ export type ViewActionProperties = { type: 'view'; value: ViewType };
16
15
  const views: Record<ViewType, string> = {
17
16
  editor: 'ph--code--regular',
18
17
  split: 'ph--square-split-vertical--regular',
19
- debug: 'ph--bug--regular',
20
- // TODO(wittjosiah): Replace debug with logs.
21
- // logs: 'ph--clock-counter-clockwise--regular',
18
+ logs: 'ph--clock-counter-clockwise--regular',
22
19
  };
23
20
 
24
21
  const createViewGroupItem = (state: Partial<ViewState>) => {