sunpeak 0.15.4 → 0.16.2

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 (105) hide show
  1. package/README.md +53 -49
  2. package/bin/commands/build.mjs +119 -6
  3. package/bin/commands/dev.mjs +168 -27
  4. package/bin/commands/new.mjs +13 -3
  5. package/bin/commands/start.mjs +215 -0
  6. package/bin/lib/extract-resource.mjs +1 -1
  7. package/bin/lib/extract-tool.mjs +78 -0
  8. package/bin/lib/patterns.mjs +2 -26
  9. package/bin/sunpeak.js +11 -1
  10. package/dist/chatgpt/index.cjs +3 -6
  11. package/dist/chatgpt/index.cjs.map +1 -1
  12. package/dist/chatgpt/index.d.ts +1 -1
  13. package/dist/chatgpt/index.js +6 -9
  14. package/dist/claude/index.cjs +1 -1
  15. package/dist/claude/index.js +1 -1
  16. package/dist/discovery-CH80W5l9.js +217 -0
  17. package/dist/discovery-CH80W5l9.js.map +1 -0
  18. package/dist/discovery-DmB8_4QL.cjs +216 -0
  19. package/dist/discovery-DmB8_4QL.cjs.map +1 -0
  20. package/dist/{index-Cngntkp2.cjs → index-Bll1bszc.cjs} +3 -6
  21. package/dist/{index-Cngntkp2.cjs.map → index-Bll1bszc.cjs.map} +1 -1
  22. package/dist/{index-Ce_5ZIdJ.js → index-CACtnwu2.js} +3 -6
  23. package/dist/{index-Ce_5ZIdJ.js.map → index-CACtnwu2.js.map} +1 -1
  24. package/dist/{index-CutQgPzR.js → index-CLcr8IyR.js} +3 -6
  25. package/dist/index-CLcr8IyR.js.map +1 -0
  26. package/dist/{index-B0dxRJvS.cjs → index-CaQmwZJc.cjs} +3 -6
  27. package/dist/index-CaQmwZJc.cjs.map +1 -0
  28. package/dist/index.cjs +49 -6
  29. package/dist/index.cjs.map +1 -1
  30. package/dist/index.d.ts +3 -0
  31. package/dist/index.js +3405 -3362
  32. package/dist/index.js.map +1 -1
  33. package/dist/lib/discovery-cli.cjs +58 -5
  34. package/dist/lib/discovery-cli.cjs.map +1 -1
  35. package/dist/lib/discovery-cli.d.ts +3 -2
  36. package/dist/lib/discovery-cli.js +61 -8
  37. package/dist/lib/discovery-cli.js.map +1 -1
  38. package/dist/lib/discovery.d.ts +42 -43
  39. package/dist/lib/extract-tool.d.ts +12 -0
  40. package/dist/mcp/favicon.d.ts +1 -1
  41. package/dist/mcp/index.cjs +1582 -5
  42. package/dist/mcp/index.cjs.map +1 -1
  43. package/dist/mcp/index.d.ts +3 -1
  44. package/dist/mcp/index.js +1583 -6
  45. package/dist/mcp/index.js.map +1 -1
  46. package/dist/mcp/production-server.d.ts +156 -0
  47. package/dist/mcp/types.d.ts +24 -1
  48. package/dist/platform/chatgpt/index.cjs +1 -1
  49. package/dist/platform/chatgpt/index.js +1 -1
  50. package/dist/{protocol-DFbsCx7E.js → protocol-BD5jDQEx.js} +8 -1
  51. package/dist/{protocol-DFbsCx7E.js.map → protocol-BD5jDQEx.js.map} +1 -1
  52. package/dist/{protocol-CL4_Npj5.cjs → protocol-BOjXuK6l.cjs} +8 -1
  53. package/dist/{protocol-CL4_Npj5.cjs.map → protocol-BOjXuK6l.cjs.map} +1 -1
  54. package/dist/simulator/index.cjs +2 -5
  55. package/dist/simulator/index.cjs.map +1 -1
  56. package/dist/simulator/index.d.ts +1 -1
  57. package/dist/simulator/index.js +5 -8
  58. package/dist/simulator/simulator-url.d.ts +9 -9
  59. package/dist/{simulator-CxrtnguM.js → simulator-B7rw83zP.js} +9 -3
  60. package/dist/{simulator-CxrtnguM.js.map → simulator-B7rw83zP.js.map} +1 -1
  61. package/dist/{simulator-DcfQBRXE.cjs → simulator-DjZNa1MI.cjs} +9 -3
  62. package/dist/{simulator-DcfQBRXE.cjs.map → simulator-DjZNa1MI.cjs.map} +1 -1
  63. package/dist/simulator-url-CuLqtnSS.js.map +1 -1
  64. package/dist/simulator-url-rgg_KYOg.cjs.map +1 -1
  65. package/dist/types/resource-config.d.ts +7 -5
  66. package/dist/{use-app-BnoSPiUT.cjs → use-app-BpAJqzdE.cjs} +50 -21
  67. package/dist/{use-app-BnoSPiUT.cjs.map → use-app-BpAJqzdE.cjs.map} +1 -1
  68. package/dist/{use-app-D_TeaMFG.js → use-app-WOUdh1PR.js} +52 -23
  69. package/dist/{use-app-D_TeaMFG.js.map → use-app-WOUdh1PR.js.map} +1 -1
  70. package/package.json +1 -1
  71. package/template/.sunpeak/dev.tsx +8 -4
  72. package/template/.sunpeak/resource-loader.tsx +2 -1
  73. package/template/README.md +27 -22
  74. package/template/package.json +3 -1
  75. package/template/src/resources/albums/{albums-resource.test.tsx → albums.test.tsx} +1 -1
  76. package/template/src/resources/albums/{albums-resource.tsx → albums.tsx} +0 -1
  77. package/template/src/resources/carousel/{carousel-resource.test.tsx → carousel.test.tsx} +1 -1
  78. package/template/src/resources/carousel/{carousel-resource.tsx → carousel.tsx} +0 -1
  79. package/template/src/resources/index.ts +4 -4
  80. package/template/src/resources/map/{map-resource.test.tsx → map.test.tsx} +1 -1
  81. package/template/src/resources/map/{map-resource.tsx → map.tsx} +0 -1
  82. package/template/src/resources/review/{review-resource.test.tsx → review.test.tsx} +1 -1
  83. package/template/src/resources/review/{review-resource.tsx → review.tsx} +1 -2
  84. package/template/src/server.ts +17 -0
  85. package/template/src/tools/review-diff.ts +24 -0
  86. package/template/src/tools/review-post.ts +26 -0
  87. package/template/src/tools/review-purchase.ts +31 -0
  88. package/template/src/tools/show-albums.ts +22 -0
  89. package/template/src/tools/show-carousel.ts +25 -0
  90. package/template/src/tools/show-map.ts +29 -0
  91. package/template/tests/e2e/albums.spec.ts +6 -6
  92. package/template/tests/e2e/carousel.spec.ts +6 -6
  93. package/template/tests/e2e/map.spec.ts +11 -11
  94. package/template/tests/simulations/{review/review-diff-simulation.json → review-diff.json} +1 -31
  95. package/template/tests/simulations/{review/review-post-simulation.json → review-post.json} +1 -37
  96. package/template/tests/simulations/{review/review-purchase-simulation.json → review-purchase.json} +1 -38
  97. package/template/tests/simulations/{albums/albums-show-simulation.json → show-albums.json} +1 -24
  98. package/template/tests/simulations/{carousel/carousel-show-simulation.json → show-carousel.json} +1 -24
  99. package/template/tests/simulations/{map/map-show-simulation.json → show-map.json} +1 -35
  100. package/dist/discovery-CRR3SlyI.cjs +0 -156
  101. package/dist/discovery-CRR3SlyI.cjs.map +0 -1
  102. package/dist/discovery-DzV3HLXs.js +0 -157
  103. package/dist/discovery-DzV3HLXs.js.map +0 -1
  104. package/dist/index-B0dxRJvS.cjs.map +0 -1
  105. package/dist/index-CutQgPzR.js.map +0 -1
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const simulator = require("../simulator-DcfQBRXE.cjs");
3
+ const simulator = require("../simulator-DjZNa1MI.cjs");
4
4
  const simulatorUrl = require("../simulator-url-rgg_KYOg.cjs");
5
- const discovery = require("../discovery-CRR3SlyI.cjs");
5
+ const discovery = require("../discovery-DmB8_4QL.cjs");
6
6
  exports.IframeResource = simulator.IframeResource;
7
7
  exports.McpAppHost = simulator.McpAppHost;
8
8
  exports.SCREEN_WIDTHS = simulator.SCREEN_WIDTHS;
@@ -29,11 +29,8 @@ exports.buildSimulations = discovery.buildSimulations;
29
29
  exports.createResourceExports = discovery.createResourceExports;
30
30
  exports.extractResourceKey = discovery.extractResourceKey;
31
31
  exports.extractSimulationKey = discovery.extractSimulationKey;
32
- exports.extractSimulationName = discovery.extractSimulationName;
33
32
  exports.findResourceDirs = discovery.findResourceDirs;
34
33
  exports.findResourceKey = discovery.findResourceKey;
35
- exports.findSimulationFiles = discovery.findSimulationFiles;
36
34
  exports.getComponentName = discovery.getComponentName;
37
- exports.isSimulationFile = discovery.isSimulationFile;
38
35
  exports.toPascalCase = discovery.toPascalCase;
39
36
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -14,5 +14,5 @@ export { SCREEN_WIDTHS } from './simulator-types';
14
14
  export { createSimulatorUrl } from './simulator-url';
15
15
  export type { SimulatorUrlParams } from './simulator-url';
16
16
  export { SimpleSidebar, SidebarControl, SidebarCollapsibleControl, SidebarSelect, SidebarInput, SidebarCheckbox, SidebarTextarea, SidebarToggle, } from './simple-sidebar';
17
- export { buildDevSimulations, buildSimulations, buildResourceMap, createResourceExports, toPascalCase, extractResourceKey, extractSimulationKey, findResourceKey, getComponentName, findResourceDirs, isSimulationFile, extractSimulationName, findSimulationFiles, } from '../lib/discovery';
17
+ export { buildDevSimulations, buildSimulations, buildResourceMap, createResourceExports, toPascalCase, extractResourceKey, extractSimulationKey, findResourceKey, getComponentName, findResourceDirs, } from '../lib/discovery';
18
18
  export type { BuildSimulationsOptions, BuildDevSimulationsOptions, ResourceMetadata, ResourceDirInfo, FsOps, } from '../lib/discovery';
@@ -1,6 +1,6 @@
1
- import { I, M, a, b, c, d, e, f, g, h, i, S, T, j, k, l, r, u, m } from "../simulator-CxrtnguM.js";
1
+ import { I, M, a, b, c, d, e, f, g, h, i, S, T, j, k, l, r, u, m } from "../simulator-B7rw83zP.js";
2
2
  import { c as c2 } from "../simulator-url-CuLqtnSS.js";
3
- import { b as b2, a as a2, c as c3, d as d2, e as e2, f as f2, g as g2, h as h2, i as i2, j as j2, k as k2, l as l2, t } from "../discovery-DzV3HLXs.js";
3
+ import { b as b2, a as a2, c as c3, d as d2, e as e2, f as f2, g as g2, h as h2, i as i2, t } from "../discovery-CH80W5l9.js";
4
4
  export {
5
5
  I as IframeResource,
6
6
  M as McpAppHost,
@@ -23,14 +23,11 @@ export {
23
23
  j as extractResourceCSP,
24
24
  e2 as extractResourceKey,
25
25
  f2 as extractSimulationKey,
26
- g2 as extractSimulationName,
27
- h2 as findResourceDirs,
28
- i2 as findResourceKey,
29
- j2 as findSimulationFiles,
30
- k2 as getComponentName,
26
+ g2 as findResourceDirs,
27
+ h2 as findResourceKey,
28
+ i2 as getComponentName,
31
29
  k as getHostShell,
32
30
  l as getRegisteredHosts,
33
- l2 as isSimulationFile,
34
31
  r as registerHostShell,
35
32
  t as toPascalCase,
36
33
  u as useSimulatorState,
@@ -10,7 +10,7 @@ import { Theme, DisplayMode, DeviceType } from '../types/runtime';
10
10
  *
11
11
  * // In e2e tests:
12
12
  * await page.goto(createSimulatorUrl({
13
- * simulation: 'albums-show',
13
+ * simulation: 'show-albums',
14
14
  * theme: 'dark',
15
15
  * displayMode: 'fullscreen',
16
16
  * host: 'claude',
@@ -19,8 +19,8 @@ import { Theme, DisplayMode, DeviceType } from '../types/runtime';
19
19
  */
20
20
  export interface SimulatorUrlParams {
21
21
  /**
22
- * The simulation name to load (e.g., 'albums-show', 'review-diff').
23
- * Corresponds to the simulation JSON filename without the '-simulation.json' suffix.
22
+ * The simulation name to load (e.g., 'show-albums', 'review-diff').
23
+ * Corresponds to the simulation JSON filename without the `.json` extension.
24
24
  */
25
25
  simulation?: string;
26
26
  /**
@@ -96,8 +96,8 @@ export interface SimulatorUrlParams {
96
96
  * @example
97
97
  * ```ts
98
98
  * // Basic usage
99
- * createSimulatorUrl({ simulation: 'albums-show', theme: 'light' })
100
- * // Returns: '/?simulation=albums-show&theme=light'
99
+ * createSimulatorUrl({ simulation: 'show-albums', theme: 'light' })
100
+ * // Returns: '/?simulation=show-albums&theme=light'
101
101
  *
102
102
  * // With display mode
103
103
  * createSimulatorUrl({
@@ -109,20 +109,20 @@ export interface SimulatorUrlParams {
109
109
  *
110
110
  * // With device simulation
111
111
  * createSimulatorUrl({
112
- * simulation: 'map-show',
112
+ * simulation: 'show-map',
113
113
  * deviceType: 'mobile',
114
114
  * touch: true,
115
115
  * hover: false,
116
116
  * })
117
- * // Returns: '/?simulation=map-show&deviceType=mobile&touch=true&hover=false'
117
+ * // Returns: '/?simulation=show-map&deviceType=mobile&touch=true&hover=false'
118
118
  *
119
119
  * // With safe area insets (for notch simulation)
120
120
  * createSimulatorUrl({
121
- * simulation: 'carousel-show',
121
+ * simulation: 'show-carousel',
122
122
  * safeAreaTop: 44,
123
123
  * safeAreaBottom: 34,
124
124
  * })
125
- * // Returns: '/?simulation=carousel-show&safeAreaTop=44&safeAreaBottom=34'
125
+ * // Returns: '/?simulation=show-carousel&safeAreaTop=44&safeAreaBottom=34'
126
126
  * ```
127
127
  */
128
128
  export declare function createSimulatorUrl(params: SimulatorUrlParams, basePath?: string): string;
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
2
  import * as React from "react";
3
3
  import { useRef, useMemo, useCallback, useEffect, useState } from "react";
4
- import { P as Protocol, b as PingRequestSchema, d as LoggingMessageNotificationSchema, c as CallToolRequestSchema, e as ListResourcesRequestSchema, f as ListResourceTemplatesRequestSchema, g as ReadResourceRequestSchema, h as ListPromptsRequestSchema, a as CallToolResultSchema, i as ToolListChangedNotificationSchema, j as ListResourcesResultSchema, k as ListResourceTemplatesResultSchema, l as ReadResourceResultSchema, m as ResourceListChangedNotificationSchema, n as ListPromptsResultSchema, o as PromptListChangedNotificationSchema, J as JSONRPCMessageSchema, I as ImplementationSchema, C as ContentBlockSchema, T as ToolSchema, R as RequestIdSchema } from "./protocol-DFbsCx7E.js";
4
+ import { P as Protocol, b as PingRequestSchema, d as LoggingMessageNotificationSchema, c as CallToolRequestSchema, e as ListResourcesRequestSchema, f as ListResourceTemplatesRequestSchema, g as ReadResourceRequestSchema, h as ListPromptsRequestSchema, a as CallToolResultSchema, i as ToolListChangedNotificationSchema, j as ListResourcesResultSchema, k as ListResourceTemplatesResultSchema, l as ReadResourceResultSchema, m as ResourceListChangedNotificationSchema, n as ListPromptsResultSchema, o as PromptListChangedNotificationSchema, J as JSONRPCMessageSchema, I as ImplementationSchema, C as ContentBlockSchema, T as ToolSchema, R as RequestIdSchema } from "./protocol-BD5jDQEx.js";
5
5
  const DEFAULT_STYLE_VARIABLES = {
6
6
  // Background colors
7
7
  "--color-background-primary": "light-dark(#ffffff, #1a1a1a)",
@@ -7754,7 +7754,13 @@ function useSimulatorState({
7754
7754
  simulations,
7755
7755
  defaultHost = "chatgpt"
7756
7756
  }) {
7757
- const simulationNames = Object.keys(simulations);
7757
+ const simulationNames = Object.keys(simulations).sort((a2, b) => {
7758
+ const simA = simulations[a2];
7759
+ const simB = simulations[b];
7760
+ const labelA = `${simA.resource.title || simA.resource.name}: ${simA.tool.title || simA.tool.name}`;
7761
+ const labelB = `${simB.resource.title || simB.resource.name}: ${simB.tool.title || simB.tool.name}`;
7762
+ return labelA.localeCompare(labelB);
7763
+ });
7758
7764
  const urlParams = useMemo(() => parseUrlParams(), []);
7759
7765
  const [screenWidth, setScreenWidth] = useState("full");
7760
7766
  const isMobileWidth = (width) => width === "mobile-s" || width === "mobile-l";
@@ -8761,4 +8767,4 @@ export {
8761
8767
  registerHostShell as r,
8762
8768
  useSimulatorState as u
8763
8769
  };
8764
- //# sourceMappingURL=simulator-CxrtnguM.js.map
8770
+ //# sourceMappingURL=simulator-B7rw83zP.js.map