forgebook 0.1.0 → 0.1.3

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 (91) hide show
  1. package/README.md +26 -5
  2. package/dist/bin/forgebook/agentClient.d.ts +22 -0
  3. package/dist/bin/forgebook/agentClient.d.ts.map +1 -0
  4. package/dist/bin/forgebook/agentClient.js +70 -0
  5. package/dist/bin/forgebook/agentClient.js.map +1 -0
  6. package/dist/bin/forgebook/agentText.d.ts +18 -0
  7. package/dist/bin/forgebook/agentText.d.ts.map +1 -0
  8. package/dist/bin/forgebook/agentText.js +44 -0
  9. package/dist/bin/forgebook/agentText.js.map +1 -0
  10. package/dist/bin/forgebook/forgebook.mjs +228 -49
  11. package/dist/bin/forgebook/forgebook.mjs.map +1 -1
  12. package/dist/bin/forgebook/mcpTools.d.ts +12 -0
  13. package/dist/bin/forgebook/mcpTools.d.ts.map +1 -0
  14. package/dist/bin/forgebook/mcpTools.js +89 -0
  15. package/dist/bin/forgebook/mcpTools.js.map +1 -0
  16. package/dist/bin/forgebook-docs/forgebook-docs.mjs +1 -2
  17. package/dist/bin/forgebook-docs/forgebook-docs.mjs.map +1 -1
  18. package/dist/src/backdrops.d.ts +4 -4
  19. package/dist/src/componentDocs.d.ts +1 -1
  20. package/dist/src/componentDocs.js +1 -1
  21. package/dist/src/frame/frameClock.d.ts +3 -3
  22. package/dist/src/frame/frameView.js +1 -1
  23. package/dist/src/frame/mountFrame.d.ts +2 -2
  24. package/dist/src/frame/mountFrame.js +2 -2
  25. package/dist/src/frame/storyModule.d.ts +1 -1
  26. package/dist/src/frame/storyModule.d.ts.map +1 -1
  27. package/dist/src/frame/storyRun.d.ts +2 -2
  28. package/dist/src/frame/storyRun.js +1 -1
  29. package/dist/src/messages.d.ts +1 -1
  30. package/dist/src/messages.js +1 -1
  31. package/dist/src/shell/ClockControls.d.ts +1 -1
  32. package/dist/src/shell/ClockControls.js +1 -1
  33. package/dist/src/shell/ComponentPage.js +1 -1
  34. package/dist/src/shell/ComponentPage.js.map +1 -1
  35. package/dist/src/shell/EventsTab.d.ts +1 -1
  36. package/dist/src/shell/FrameView.d.ts +1 -1
  37. package/dist/src/shell/PartsTab.d.ts +1 -1
  38. package/dist/src/shell/PropsTab.d.ts +1 -1
  39. package/dist/src/shell/Shell.js +3 -3
  40. package/dist/src/shell/Shell.js.map +1 -1
  41. package/dist/src/shell/Sidebar.d.ts +1 -1
  42. package/dist/src/shell/Sidebar.js +3 -3
  43. package/dist/src/shell/Stage.d.ts +1 -1
  44. package/dist/src/shell/Stage.js +1 -1
  45. package/dist/src/shell/StageViewport.d.ts +1 -2
  46. package/dist/src/shell/StageViewport.d.ts.map +1 -1
  47. package/dist/src/shell/StageViewport.js +1 -2
  48. package/dist/src/shell/StageViewport.js.map +1 -1
  49. package/dist/src/shell/Toolbar.js +1 -1
  50. package/dist/src/shell/treeSearch.d.ts +2 -2
  51. package/dist/src/shell/useFrameMessages.d.ts +1 -1
  52. package/dist/src/shell/useFrameMessages.d.ts.map +1 -1
  53. package/dist/src/storyBackground.d.ts +1 -1
  54. package/dist/src/storyClock.d.ts +2 -2
  55. package/dist/src/storyClock.js +2 -2
  56. package/dist/src/storyTree.d.ts +7 -7
  57. package/dist/src/storyTree.d.ts.map +1 -1
  58. package/dist/src/viewState.d.ts +11 -2
  59. package/dist/src/viewState.d.ts.map +1 -1
  60. package/dist/src/viewState.js +15 -0
  61. package/dist/src/viewState.js.map +1 -1
  62. package/dist/src/vite/agent.types.d.ts +90 -0
  63. package/dist/src/vite/agent.types.d.ts.map +1 -0
  64. package/dist/src/vite/agent.types.js +1 -0
  65. package/dist/src/vite/agent.types.js.map +1 -0
  66. package/dist/src/vite/agentApi.d.ts +94 -0
  67. package/dist/src/vite/agentApi.d.ts.map +1 -0
  68. package/dist/src/vite/agentApi.js +162 -0
  69. package/dist/src/vite/agentApi.js.map +1 -0
  70. package/dist/src/vite/agentRoutes.d.ts +45 -0
  71. package/dist/src/vite/agentRoutes.d.ts.map +1 -0
  72. package/dist/src/vite/agentRoutes.js +94 -0
  73. package/dist/src/vite/agentRoutes.js.map +1 -0
  74. package/dist/src/vite/docsProgram.js +1 -1
  75. package/dist/src/vite/forcedStates.d.ts +1 -1
  76. package/dist/src/vite/forcedStates.js +1 -1
  77. package/dist/src/vite/forgebookPlugin.d.ts.map +1 -1
  78. package/dist/src/vite/forgebookPlugin.js +10 -3
  79. package/dist/src/vite/forgebookPlugin.js.map +1 -1
  80. package/dist/src/vite/highlightCode.js +1 -1
  81. package/dist/src/vite/mcpProtocol.d.ts +73 -0
  82. package/dist/src/vite/mcpProtocol.d.ts.map +1 -0
  83. package/dist/src/vite/mcpProtocol.js +181 -0
  84. package/dist/src/vite/mcpProtocol.js.map +1 -0
  85. package/dist/src/vite/pages.d.ts +12 -0
  86. package/dist/src/vite/pages.d.ts.map +1 -1
  87. package/dist/src/vite/pages.js +21 -0
  88. package/dist/src/vite/pages.js.map +1 -1
  89. package/dist/src/vite/storyFilesModule.js +1 -1
  90. package/dist/src/vite/typeScriptPieces.js +2 -2
  91. package/package.json +7 -3
@@ -0,0 +1,181 @@
1
+ /**
2
+ * The part of the Model Context Protocol a stdio server with a few tools needs, written here instead of taking the
3
+ * protocol's SDK: one JSON-RPC message in, its answer out. Pure apart from the tools it calls.
4
+ *
5
+ * @remarks
6
+ * Two eras of the protocol are served, as the specification's backward-compatibility rules describe: the current
7
+ * stateless one (`2026-07-28`: each request carries its version in `params._meta`, `server/discover` answers what the
8
+ * server offers) and the handshake one most clients still speak (`2025-11-25` and before: `initialize`, then
9
+ * requests). An `initialize` puts the session in the handshake era; a request carrying the version in `_meta` is
10
+ * answered statelessly. The tools never change while the server runs, so their list is cacheable and public.
11
+ *
12
+ * @module
13
+ */
14
+ /** The protocol's current version, stateless. */
15
+ export const MODERN_VERSION = "2026-07-28";
16
+ /** The handshake versions answered: the latest first, which a client asking for another is offered. */
17
+ export const HANDSHAKE_VERSIONS = ["2025-11-25", "2025-06-18", "2025-03-26"];
18
+ /** Every version served, for `server/discover` and for the error a client with another one gets. */
19
+ export const SUPPORTED_VERSIONS = [MODERN_VERSION, ...HANDSHAKE_VERSIONS];
20
+ /** The `_meta` keys of the current era. */
21
+ const META = {
22
+ version: "io.modelcontextprotocol/protocolVersion",
23
+ capabilities: "io.modelcontextprotocol/clientCapabilities",
24
+ serverInfo: "io.modelcontextprotocol/serverInfo"
25
+ };
26
+ /** JSON-RPC's and the protocol's error codes this server answers with. */
27
+ const ERRORS = {
28
+ parse: -32700,
29
+ invalidRequest: -32600,
30
+ methodNotFound: -32601,
31
+ invalidParams: -32602,
32
+ unsupportedVersion: -32022
33
+ };
34
+ /** How long a client may keep the tools' list, in ms: they never change while the server runs. */
35
+ const TOOLS_TTL_MS = 300_000;
36
+ /** A new session: no handshake yet. */
37
+ export const NEW_SESSION = { handshakeVersion: undefined };
38
+ /** Whether a value is a plain object. */
39
+ const isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
40
+ /** An error answer. */
41
+ const failure = (id, code, message, data) => ({
42
+ jsonrpc: "2.0",
43
+ id,
44
+ error: data === undefined ? { code, message } : { code, message, data }
45
+ });
46
+ /** A result answer. */
47
+ const success = (id, result) => ({
48
+ jsonrpc: "2.0",
49
+ id,
50
+ result
51
+ });
52
+ /** What the stateless era adds to every result: its type and who answered. */
53
+ const modernResult = (server, result) => ({
54
+ resultType: "complete",
55
+ ...result,
56
+ // biome-ignore lint/style/useNamingConvention: the protocol names this field
57
+ _meta: { [META.serverInfo]: server.info }
58
+ });
59
+ /**
60
+ * Why a stateless request cannot be answered: its `_meta` lacks the version or the client's capabilities, or names a
61
+ * version not served.
62
+ *
63
+ * @returns the error answer, or none when the request is valid.
64
+ */
65
+ const modernProblem = (id, meta) => {
66
+ const version = meta[META.version];
67
+ if (typeof version !== "string" || !isRecord(meta[META.capabilities]))
68
+ return failure(id, ERRORS.invalidParams, `A request needs ${META.version} and ${META.capabilities} in _meta`);
69
+ if (!SUPPORTED_VERSIONS.includes(version))
70
+ return failure(id, ERRORS.unsupportedVersion, "Unsupported protocol version", {
71
+ supported: SUPPORTED_VERSIONS,
72
+ requested: version
73
+ });
74
+ return undefined;
75
+ };
76
+ /** The tools' list as the protocol gives it. */
77
+ const toolList = (server) => server.tools.map((tool) => ({
78
+ name: tool.name,
79
+ description: tool.description,
80
+ inputSchema: tool.inputSchema
81
+ }));
82
+ /** A tool's answer as the protocol gives it: its JSON as text and as structured content. */
83
+ const toolResult = async (tool, args) => {
84
+ const { structured, isError } = await tool.call(args);
85
+ return {
86
+ content: [{ type: "text", text: JSON.stringify(structured) }],
87
+ structuredContent: structured,
88
+ isError
89
+ };
90
+ };
91
+ /** Answers a request in either era: the methods both share. */
92
+ const answerRequest = async (server, id, method, params, isModern) => {
93
+ const finish = (result) => success(id, isModern ? modernResult(server, result) : result);
94
+ if (method === "tools/list")
95
+ return finish(isModern
96
+ ? { tools: toolList(server), ttlMs: TOOLS_TTL_MS, cacheScope: "public" }
97
+ : { tools: toolList(server) });
98
+ if (method === "tools/call") {
99
+ const name = params["name"];
100
+ const tool = server.tools.find((each) => each.name === name);
101
+ if (tool === undefined)
102
+ return failure(id, ERRORS.invalidParams, `Unknown tool: ${String(name)}`);
103
+ const args = params["arguments"];
104
+ return finish(await toolResult(tool, isRecord(args) ? args : {}));
105
+ }
106
+ if (method === "server/discover" && isModern)
107
+ return finish({
108
+ supportedVersions: SUPPORTED_VERSIONS,
109
+ capabilities: { tools: {} },
110
+ ...(server.instructions === undefined ? {} : { instructions: server.instructions }),
111
+ ttlMs: TOOLS_TTL_MS,
112
+ cacheScope: "public"
113
+ });
114
+ return failure(id, ERRORS.methodNotFound, `Method not found: ${method}`);
115
+ };
116
+ /** Reads one line as a JSON-RPC message. */
117
+ const readMessage = (line) => {
118
+ let message;
119
+ try {
120
+ message = JSON.parse(line);
121
+ }
122
+ catch {
123
+ return { kind: "invalid", reply: failure(null, ERRORS.parse, "Parse error") };
124
+ }
125
+ if (!isRecord(message) || message["jsonrpc"] !== "2.0" || typeof message["method"] !== "string") {
126
+ const id = isRecord(message) ? (message["id"] ?? null) : null;
127
+ return { kind: "invalid", reply: failure(id, ERRORS.invalidRequest, "Invalid request") };
128
+ }
129
+ // a notification (no id) is never answered: `notifications/initialized`, a cancellation
130
+ if (!("id" in message))
131
+ return { kind: "notification" };
132
+ const params = message["params"];
133
+ return {
134
+ kind: "request",
135
+ id: message["id"],
136
+ method: message["method"],
137
+ params: isRecord(params) ? params : {}
138
+ };
139
+ };
140
+ /** Answers `initialize`: the version asked for when it is served, the latest handshake one otherwise. */
141
+ const initialized = (server, id, params) => {
142
+ const asked = params["protocolVersion"];
143
+ const version = HANDSHAKE_VERSIONS.find((each) => each === asked) ?? HANDSHAKE_VERSIONS[0];
144
+ const result = {
145
+ protocolVersion: version,
146
+ capabilities: { tools: {} },
147
+ serverInfo: server.info,
148
+ ...(server.instructions === undefined ? {} : { instructions: server.instructions })
149
+ };
150
+ return { reply: JSON.stringify(success(id, result)), session: { handshakeVersion: version } };
151
+ };
152
+ /**
153
+ * Answers one message the client sent: a line of JSON-RPC.
154
+ *
155
+ * @param line - the message, one line of JSON.
156
+ * @param session - what the session remembers.
157
+ * @param server - who the server is and its tools.
158
+ * @returns the answer to write (none for a notification) and the session after the message.
159
+ */
160
+ export const answerMcpMessage = async (line, session, server) => {
161
+ const read = readMessage(line);
162
+ if (read.kind === "notification")
163
+ return { reply: undefined, session };
164
+ if (read.kind === "invalid")
165
+ return { reply: JSON.stringify(read.reply), session };
166
+ const { id, method, params } = read;
167
+ if (method === "initialize")
168
+ return initialized(server, id, params);
169
+ const answer = async () => {
170
+ if (method === "ping")
171
+ return success(id, {});
172
+ const meta = params["_meta"];
173
+ if (isRecord(meta) && META.version in meta)
174
+ return modernProblem(id, meta) ?? (await answerRequest(server, id, method, params, true));
175
+ if (session.handshakeVersion !== undefined)
176
+ return answerRequest(server, id, method, params, false);
177
+ return failure(id, ERRORS.invalidParams, `A request needs ${META.version} in _meta, or an initialize first`);
178
+ };
179
+ return { reply: JSON.stringify(await answer()), session };
180
+ };
181
+ //# sourceMappingURL=mcpProtocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpProtocol.js","sourceRoot":"","sources":["../../../src/vite/mcpProtocol.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,iDAAiD;AACjD,MAAM,CAAC,MAAM,cAAc,GAAG,YAAY,CAAC;AAE3C,uGAAuG;AACvG,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAU,CAAC;AAEtF,oGAAoG;AACpG,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,cAAc,EAAE,GAAG,kBAAkB,CAAC,CAAC;AAE7F,2CAA2C;AAC3C,MAAM,IAAI,GAAG;IACX,OAAO,EAAE,yCAAyC;IAClD,YAAY,EAAE,4CAA4C;IAC1D,UAAU,EAAE,oCAAoC;CACxC,CAAC;AAEX,0EAA0E;AAC1E,MAAM,MAAM,GAAG;IACb,KAAK,EAAE,CAAC,KAAK;IACb,cAAc,EAAE,CAAC,KAAK;IACtB,cAAc,EAAE,CAAC,KAAK;IACtB,aAAa,EAAE,CAAC,KAAK;IACrB,kBAAkB,EAAE,CAAC,KAAK;CAClB,CAAC;AAEX,kGAAkG;AAClG,MAAM,YAAY,GAAG,OAAO,CAAC;AAsC7B,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC;AAgBvE,yCAAyC;AACzC,MAAM,QAAQ,GAAG,CAAC,KAAc,EAA8C,EAAE,CAC9E,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEvE,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,EAAW,EAAE,IAAY,EAAE,OAAe,EAAE,IAAc,EAAS,EAAE,CAAC,CAAC;IACtF,OAAO,EAAE,KAAK;IACd,EAAE;IACF,KAAK,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;CACxE,CAAC,CAAC;AAEH,uBAAuB;AACvB,MAAM,OAAO,GAAG,CAAC,EAAW,EAAE,MAAyC,EAAS,EAAE,CAAC,CAAC;IAClF,OAAO,EAAE,KAAK;IACd,EAAE;IACF,MAAM;CACP,CAAC,CAAC;AAEH,8EAA8E;AAC9E,MAAM,YAAY,GAAG,CACnB,MAAiB,EACjB,MAAyC,EAChB,EAAE,CAAC,CAAC;IAC7B,UAAU,EAAE,UAAU;IACtB,GAAG,MAAM;IACT,6EAA6E;IAC7E,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE;CAC1C,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,aAAa,GAAG,CAAC,EAAW,EAAE,IAAuC,EAAqB,EAAE;IAChG,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,OAAO,OAAO,CACZ,EAAE,EACF,MAAM,CAAC,aAAa,EACpB,mBAAmB,IAAI,CAAC,OAAO,QAAQ,IAAI,CAAC,YAAY,WAAW,CACpE,CAAC;IACJ,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,OAAO,CAAC;QACvC,OAAO,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,kBAAkB,EAAE,8BAA8B,EAAE;YAC5E,SAAS,EAAE,kBAAkB;YAC7B,SAAS,EAAE,OAAO;SACnB,CAAC,CAAC;IACL,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,gDAAgD;AAChD,MAAM,QAAQ,GAAG,CAAC,MAAiB,EAAuC,EAAE,CAC1E,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAC1B,IAAI,EAAE,IAAI,CAAC,IAAI;IACf,WAAW,EAAE,IAAI,CAAC,WAAW;IAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;CAC9B,CAAC,CAAC,CAAC;AAEN,4FAA4F;AAC5F,MAAM,UAAU,GAAG,KAAK,EACtB,IAAa,EACb,IAAuC,EACL,EAAE;IACpC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,OAAO;QACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,iBAAiB,EAAE,UAAU;QAC7B,OAAO;KACR,CAAC;AACJ,CAAC,CAAC;AAEF,+DAA+D;AAC/D,MAAM,aAAa,GAAG,KAAK,EACzB,MAAiB,EACjB,EAAW,EACX,MAAc,EACd,MAAyC,EACzC,QAAiB,EACD,EAAE;IAClB,MAAM,MAAM,GAAG,CAAC,MAAyC,EAAS,EAAE,CAClE,OAAO,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,IAAI,MAAM,KAAK,YAAY;QACzB,OAAO,MAAM,CACX,QAAQ;YACN,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE;YACxE,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAChC,CAAC;IACJ,IAAI,MAAM,KAAK,YAAY,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAC7D,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,aAAa,EAAE,iBAAiB,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClG,MAAM,IAAI,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC,MAAM,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpE,CAAC;IACD,IAAI,MAAM,KAAK,iBAAiB,IAAI,QAAQ;QAC1C,OAAO,MAAM,CAAC;YACZ,iBAAiB,EAAE,kBAAkB;YACrC,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;YAC3B,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YACnF,KAAK,EAAE,YAAY;YACnB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;IACL,OAAO,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,qBAAqB,MAAM,EAAE,CAAC,CAAC;AAC3E,CAAC,CAAC;AAaF,4CAA4C;AAC5C,MAAM,WAAW,GAAG,CAAC,IAAY,EAAe,EAAE;IAChD,IAAI,OAAgB,CAAC;IACrB,IAAI,CAAC;QACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,CAAC;IAChF,CAAC;IACD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,KAAK,KAAK,IAAI,OAAO,OAAO,CAAC,QAAQ,CAAC,KAAK,QAAQ,EAAE,CAAC;QAChG,MAAM,EAAE,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,EAAE,CAAC;IAC3F,CAAC;IACD,wFAAwF;IACxF,IAAI,CAAC,CAAC,IAAI,IAAI,OAAO,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,OAAO;QACL,IAAI,EAAE,SAAS;QACf,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC;QACjB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC;QACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;KACvC,CAAC;AACJ,CAAC,CAAC;AAEF,yGAAyG;AACzG,MAAM,WAAW,GAAG,CAAC,MAAiB,EAAE,EAAW,EAAE,MAAyC,EAAW,EAAE;IACzG,MAAM,KAAK,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG;QACb,eAAe,EAAE,OAAO;QACxB,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;QAC3B,UAAU,EAAE,MAAM,CAAC,IAAI;QACvB,GAAG,CAAC,MAAM,CAAC,YAAY,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;KACpF,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,CAAC;AAChG,CAAC,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,IAAY,EACZ,OAAmB,EACnB,MAAiB,EACC,EAAE;IACpB,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,CAAC;IACvE,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IACnF,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACpC,IAAI,MAAM,KAAK,YAAY;QAAE,OAAO,WAAW,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IACpE,MAAM,MAAM,GAAG,KAAK,IAAoB,EAAE;QACxC,IAAI,MAAM,KAAK,MAAM;YAAE,OAAO,OAAO,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QAC7B,IAAI,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI;YACxC,OAAO,aAAa,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5F,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;YAAE,OAAO,aAAa,CAAC,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC;QACpG,OAAO,OAAO,CACZ,EAAE,EACF,MAAM,CAAC,aAAa,EACpB,mBAAmB,IAAI,CAAC,OAAO,mCAAmC,CACnE,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC;AAC5D,CAAC,CAAC"}
@@ -13,6 +13,11 @@ export declare const CONFIG_MODULE = "virtual:forgebook/config";
13
13
  export declare const PAGE_ENTRIES: Readonly<Record<PageFile, string>>;
14
14
  /** The file name, in the configuration's folder, of the project's own stories' source (never written to disk). */
15
15
  export declare const STORIES_SOURCE_FILE = ".forgebook-stories.ts";
16
+ /**
17
+ * The file name, in the configuration's folder, of the module the dev server loads to answer tools and agents: the
18
+ * sources and the previews, as the frame gets them (never written to disk).
19
+ */
20
+ export declare const AGENT_SOURCES_FILE = ".forgebook-agent.ts";
16
21
  /** The project's own stories' source id. */
17
22
  export declare const OWN_SOURCE_ID = "stories";
18
23
  /**
@@ -40,6 +45,13 @@ export declare const shellEntry: (config: ResolvedConfig) => string;
40
45
  * @param config - the configuration.
41
46
  */
42
47
  export declare const frameEntry: (config: ResolvedConfig) => string;
48
+ /**
49
+ * The module the dev server loads to answer tools and agents: the sources and the previews the frame mounts, as
50
+ * values (`sources`, `previews`), loaded on the server with the same imports the pages use.
51
+ *
52
+ * @param config - the configuration.
53
+ */
54
+ export declare const agentSourcesModule: (config: ResolvedConfig) => string;
43
55
  /**
44
56
  * The source of the project's own stories: one `?forgebook-files` import per glob, named after the catalogue.
45
57
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qCAAqC;AACrC,eAAO,MAAM,UAAU,uCAAwC,CAAC;AAEhE,0BAA0B;AAC1B,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,+DAA+D;AAC/D,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAG3D,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D,4CAA4C;AAC5C,eAAO,MAAM,aAAa,YAAY,CAAC;AAUvC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,QAAQ,EAAE,QAAQ,cAAc,KAAG,MAgBpD,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MASrD,CAAC;AAkBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAuBnD,CAAC;AAgBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAmBnD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,KAAG,MAa/C,CAAC"}
1
+ {"version":3,"file":"pages.d.ts","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE3E,qCAAqC;AACrC,eAAO,MAAM,UAAU,uCAAwC,CAAC;AAEhE,0BAA0B;AAC1B,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnD,+DAA+D;AAC/D,eAAO,MAAM,aAAa,6BAA6B,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAG3D,CAAC;AAEF,kHAAkH;AAClH,eAAO,MAAM,mBAAmB,0BAA0B,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAExD,4CAA4C;AAC5C,eAAO,MAAM,aAAa,YAAY,CAAC;AAUvC;;;;;GAKG;AACH,eAAO,MAAM,QAAQ,GAAI,MAAM,QAAQ,EAAE,QAAQ,cAAc,KAAG,MAgBpD,CAAC;AAEf;;;;GAIG;AACH,eAAO,MAAM,YAAY,GAAI,QAAQ,cAAc,KAAG,MASrD,CAAC;AAkBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAuBnD,CAAC;AAgBF;;;;GAIG;AACH,eAAO,MAAM,UAAU,GAAI,QAAQ,cAAc,KAAG,MAmBnD,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,kBAAkB,GAAI,QAAQ,cAAc,KAAG,MAS3D,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,GAAI,QAAQ,cAAc,KAAG,MAa/C,CAAC"}
@@ -28,6 +28,11 @@ export const PAGE_ENTRIES = {
28
28
  };
29
29
  /** The file name, in the configuration's folder, of the project's own stories' source (never written to disk). */
30
30
  export const STORIES_SOURCE_FILE = ".forgebook-stories.ts";
31
+ /**
32
+ * The file name, in the configuration's folder, of the module the dev server loads to answer tools and agents: the
33
+ * sources and the previews, as the frame gets them (never written to disk).
34
+ */
35
+ export const AGENT_SOURCES_FILE = ".forgebook-agent.ts";
31
36
  /** The project's own stories' source id. */
32
37
  export const OWN_SOURCE_ID = "stories";
33
38
  /**
@@ -153,6 +158,22 @@ export const frameEntry = (config) => {
153
158
  ""
154
159
  ].join("\n");
155
160
  };
161
+ /**
162
+ * The module the dev server loads to answer tools and agents: the sources and the previews the frame mounts, as
163
+ * values (`sources`, `previews`), loaded on the server with the same imports the pages use.
164
+ *
165
+ * @param config - the configuration.
166
+ */
167
+ export const agentSourcesModule = (config) => {
168
+ const sources = sourcesCode(config);
169
+ return [
170
+ ...sources.imports,
171
+ ...config.previews.map((file, index) => `import * as preview${index} from ${JSON.stringify(file)};`),
172
+ `export const sources = ${sources.list};`,
173
+ `export const previews = [${config.previews.map((_file, index) => `preview${index}`).join(", ")}];`,
174
+ ""
175
+ ].join("\n");
176
+ };
156
177
  /**
157
178
  * The source of the project's own stories: one `?forgebook-files` import per glob, named after the catalogue.
158
179
  *
@@ -1 +1 @@
1
- {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pages.js","sourceRoot":"","sources":["../../../src/vite/pages.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC,OAAO,EAAE,mBAAmB,EAAuB,MAAM,iBAAiB,CAAC;AAE3E,qCAAqC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,YAAY,EAAE,YAAY,CAAU,CAAC;AAKhE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,aAAa,GAAG,0BAA0B,CAAC;AAExD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAuC;IAC9D,YAAY,EAAE,qBAAqB;IACnC,YAAY,EAAE,qBAAqB;CACpC,CAAC;AAEF,kHAAkH;AAClH,MAAM,CAAC,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAExD,4CAA4C;AAC5C,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC;AAEvC;;;;GAIG;AACH,MAAM,OAAO,GAAG,CAAC,IAAY,EAAU,EAAE,CACvC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE1E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,IAAc,EAAE,MAAsB,EAAU,EAAE,CACzE;IACE,iBAAiB;IACjB,kBAAkB;IAClB,UAAU;IACV,8BAA8B;IAC9B,4EAA4E;IAC5E,cAAc,OAAO,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU;IAC/E,GAAG,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACrE,WAAW;IACX,UAAU;IACV,2BAA2B;IAC3B,mCAAmC,YAAY,CAAC,IAAI,CAAC,aAAa;IAClE,WAAW;IACX,SAAS;IACT,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAEf;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAsB,EAAU,EAAE;IAC7D,MAAM,IAAI,GAAe;QACvB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,OAAO,EAAE,MAAM,CAAC,OAAO;QACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;QACzB,SAAS,EAAE,MAAM,CAAC,SAAS;QAC3B,KAAK,EAAE,MAAM,CAAC,KAAK;KACpB,CAAC;IACF,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;AACnD,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,GAAG,CAAC,MAAsB,EAAyD,EAAE;IACpG,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,mBAAmB,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;IAC9F,OAAO;QACL,OAAO,EAAE,UAAU,CAAC,GAAG,CACrB,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE,CAAC,4BAA4B,KAAK,WAAW,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,GAAG,CAC/F;QACD,IAAI,EAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;KAChF,CAAC;AACJ,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAsB,EAAU,EAAE;IAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,+CAA+C;QAC/C,0BAA0B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG;QACxE,sBAAsB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG;QACtD,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,oBAAoB,IAAI,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC;QACnG,GAAG,OAAO,CAAC,OAAO;QAClB,+CAA+C;QAC/C,oBAAoB;QACpB,sBAAsB;QACtB,0BAA0B;QAC1B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACnD,GAAG,CAAC,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC;QACzE,gBAAgB,OAAO,CAAC,IAAI,GAAG;QAC/B,6BAA6B;QAC7B,kCAAkC;QAClC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAC5E,0BAA0B;QAC1B,YAAY;QACZ,OAAO;QACP,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,eAAe,GAAG,GAAW,EAAE;IACnC,MAAM,OAAO,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChG,OAAO;QACL,8BAA8B;QAC9B,kDAAkD,OAAO,KAAK;QAC9D,mEAAmE;QACnE,QAAQ;KACT,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAsB,EAAU,EAAE;IAC3D,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,8BAA8B,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG;QAC7E,sBAAsB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG;QACtD,GAAG,OAAO,CAAC,OAAO;QAClB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QACpG,+CAA+C;QAC/C,oBAAoB;QACpB,2BAA2B;QAC3B,gBAAgB,OAAO,CAAC,IAAI,GAAG;QAC/B,kCAAkC;QAClC,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC;QAC5E,0BAA0B;QAC1B,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACnD,kBAAkB,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG;QACxF,OAAO;QACP,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,MAAsB,EAAU,EAAE;IACnE,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,GAAG,OAAO,CAAC,OAAO;QAClB,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC;QACpG,0BAA0B,OAAO,CAAC,IAAI,GAAG;QACzC,4BAA4B,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;QACnG,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAsB,EAAU,EAAE,CACpE;IACE,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CACnB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CACjB,eAAe,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CACtG;IACD,yBAAyB;IACzB,SAAS,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG;IACzC,WAAW,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG;IAC1C,aAAa,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;IACpF,qDAAqD;IACrD,IAAI;IACJ,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC"}
@@ -4,7 +4,7 @@
4
4
  *
5
5
  * @remarks
6
6
  * One module per pattern, instead of an import per file: in development the browser fetched every index module one by
7
- * one, a few hundred requests per frame (D-438). The keys are the files' paths relative to the declaring module
7
+ * one, a few hundred requests per frame. The keys are the files' paths relative to the declaring module
8
8
  * (`../src/x.stories.tsx`), the same keys `storyFileKeys` gives the tests that read the files from the disk.
9
9
  *
10
10
  * @module
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Code of the TypeScript family (TypeScript, TSX, JavaScript, JSX) split into the pieces a reader tells apart, from
3
- * the TypeScript compiler's syntactic classifications, for `highlightCode.ts` to colour (D-690).
3
+ * the TypeScript compiler's syntactic classifications, for `highlightCode.ts` to colour.
4
4
  *
5
5
  * @remarks
6
6
  * highlight.js has no JSX grammar: it reads JSX as HTML, so an attribute holding a function or a `>` ends the tag
@@ -11,7 +11,7 @@
11
11
  * keywords, literals (a regular expression among the strings), comments, JSX and the names declared by a class, an
12
12
  * interface, an enum, a namespace or a type parameter apart; a name they leave as a plain identifier is placed from
13
13
  * the block's syntax tree: a type where a type is written, a function where it is called or declared, a property
14
- * where it is read or declared (D-691). The rest (operators, punctuation, plain names, JSX text) stays plain.
14
+ * where it is read or declared. The rest (operators, punctuation, plain names, JSX text) stays plain.
15
15
  *
16
16
  * The pieces are slices of the code, in order, covering it whole: the caller escapes each one, so a coloured piece
17
17
  * never splits an HTML entity.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "forgebook",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "See every component in every theme, contrast, language and width: CSF stories, one frame per story, and a props table from the components' types.",
5
5
  "keywords": [
6
6
  "react",
@@ -13,7 +13,7 @@
13
13
  "author": "Jason Scoppetta",
14
14
  "repository": {
15
15
  "type": "git",
16
- "url": "git+https://github.com/Ensiria/forgebook.git",
16
+ "url": "git+https://github.com/ensiria/forgebook.git",
17
17
  "directory": "packages/forgebook"
18
18
  },
19
19
  "type": "module",
@@ -37,6 +37,10 @@
37
37
  "types": "./dist/src/vite/config.d.ts",
38
38
  "default": "./dist/src/vite/config.js"
39
39
  },
40
+ "./agent": {
41
+ "types": "./dist/src/vite/agent.types.d.ts",
42
+ "default": "./dist/src/vite/agent.types.js"
43
+ },
40
44
  "./story-tree": {
41
45
  "types": "./dist/src/storyTree.d.ts",
42
46
  "default": "./dist/src/storyTree.js"
@@ -157,7 +161,7 @@
157
161
  "lightningcss": "1.33.0",
158
162
  "marked": "18.1.0",
159
163
  "typescript-6": "npm:typescript@6.0.3",
160
- "@forgebook/story-format": "0.1.0"
164
+ "@forgebook/story-format": "0.1.2"
161
165
  },
162
166
  "peerDependencies": {
163
167
  "@testing-library/dom": "^10.4.0",