@skillcdn/console 0.4.1 → 0.4.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 (299) hide show
  1. package/README.md +19 -2
  2. package/SKILLCDN.md +7 -5
  3. package/dist/api.d.ts +5 -4
  4. package/dist/api.d.ts.map +1 -1
  5. package/dist/api.js +5 -4
  6. package/dist/api.js.map +1 -1
  7. package/dist/cli/cli.d.ts.map +1 -1
  8. package/dist/cli/cli.js +569 -48
  9. package/dist/cli/cli.js.map +1 -1
  10. package/dist/cli/format.d.ts +34 -3
  11. package/dist/cli/format.d.ts.map +1 -1
  12. package/dist/cli/format.js +283 -7
  13. package/dist/cli/format.js.map +1 -1
  14. package/dist/cli/help.d.ts.map +1 -1
  15. package/dist/cli/help.js +44 -7
  16. package/dist/cli/help.js.map +1 -1
  17. package/dist/cli/plugin-check.d.ts +26 -0
  18. package/dist/cli/plugin-check.d.ts.map +1 -0
  19. package/dist/cli/plugin-check.js +396 -0
  20. package/dist/cli/plugin-check.js.map +1 -0
  21. package/dist/cli/plugin-cli.d.ts +20 -0
  22. package/dist/cli/plugin-cli.d.ts.map +1 -0
  23. package/dist/cli/plugin-cli.js +189 -0
  24. package/dist/cli/plugin-cli.js.map +1 -0
  25. package/dist/cli/plugin-init.d.ts +37 -0
  26. package/dist/cli/plugin-init.d.ts.map +1 -0
  27. package/dist/cli/plugin-init.js +206 -0
  28. package/dist/cli/plugin-init.js.map +1 -0
  29. package/dist/cli/plugin-main.d.ts +3 -0
  30. package/dist/cli/plugin-main.d.ts.map +1 -0
  31. package/dist/cli/plugin-main.js +28 -0
  32. package/dist/cli/plugin-main.js.map +1 -0
  33. package/dist/client.d.ts +100 -3
  34. package/dist/client.d.ts.map +1 -1
  35. package/dist/client.js +79 -7
  36. package/dist/client.js.map +1 -1
  37. package/dist/compat.d.ts +1 -1
  38. package/dist/compat.js +2 -2
  39. package/dist/components/board.d.ts +8 -0
  40. package/dist/components/board.d.ts.map +1 -1
  41. package/dist/components/board.js +59 -15
  42. package/dist/components/board.js.map +1 -1
  43. package/dist/components/comments.d.ts.map +1 -1
  44. package/dist/components/comments.js +1 -1
  45. package/dist/components/comments.js.map +1 -1
  46. package/dist/components/decision-form.d.ts +2 -1
  47. package/dist/components/decision-form.d.ts.map +1 -1
  48. package/dist/components/decision-form.js +36 -4
  49. package/dist/components/decision-form.js.map +1 -1
  50. package/dist/components/decision-list.d.ts +4 -0
  51. package/dist/components/decision-list.d.ts.map +1 -1
  52. package/dist/components/decision-list.js +29 -3
  53. package/dist/components/decision-list.js.map +1 -1
  54. package/dist/components/event-feed.d.ts +1 -1
  55. package/dist/components/event-feed.d.ts.map +1 -1
  56. package/dist/components/event-feed.js +33 -1
  57. package/dist/components/event-feed.js.map +1 -1
  58. package/dist/components/my-decisions.d.ts +2 -0
  59. package/dist/components/my-decisions.d.ts.map +1 -1
  60. package/dist/components/my-decisions.js +2 -2
  61. package/dist/components/my-decisions.js.map +1 -1
  62. package/dist/components/plugin-frame.d.ts +52 -0
  63. package/dist/components/plugin-frame.d.ts.map +1 -0
  64. package/dist/components/plugin-frame.js +314 -0
  65. package/dist/components/plugin-frame.js.map +1 -0
  66. package/dist/components/plugin-settings.d.ts +38 -0
  67. package/dist/components/plugin-settings.d.ts.map +1 -0
  68. package/dist/components/plugin-settings.js +348 -0
  69. package/dist/components/plugin-settings.js.map +1 -0
  70. package/dist/components/shell.d.ts +2 -0
  71. package/dist/components/shell.d.ts.map +1 -1
  72. package/dist/components/shell.js +26 -1
  73. package/dist/components/shell.js.map +1 -1
  74. package/dist/components/task-view.d.ts +2 -1
  75. package/dist/components/task-view.d.ts.map +1 -1
  76. package/dist/components/task-view.js.map +1 -1
  77. package/dist/components/workspace.d.ts +7 -1
  78. package/dist/components/workspace.d.ts.map +1 -1
  79. package/dist/components/workspace.js +1 -1
  80. package/dist/components/workspace.js.map +1 -1
  81. package/dist/console.css +330 -1
  82. package/dist/console.d.ts.map +1 -1
  83. package/dist/console.js +152 -41
  84. package/dist/console.js.map +1 -1
  85. package/dist/data.d.ts +9 -2
  86. package/dist/data.d.ts.map +1 -1
  87. package/dist/data.js +45 -9
  88. package/dist/data.js.map +1 -1
  89. package/dist/i18n/en.d.ts +155 -0
  90. package/dist/i18n/en.d.ts.map +1 -1
  91. package/dist/i18n/en.js +166 -0
  92. package/dist/i18n/en.js.map +1 -1
  93. package/dist/i18n/ko.d.ts.map +1 -1
  94. package/dist/i18n/ko.js +150 -0
  95. package/dist/i18n/ko.js.map +1 -1
  96. package/dist/index.d.ts +3 -1
  97. package/dist/index.d.ts.map +1 -1
  98. package/dist/index.js +3 -1
  99. package/dist/index.js.map +1 -1
  100. package/dist/limits.d.ts +2 -0
  101. package/dist/limits.d.ts.map +1 -1
  102. package/dist/limits.js +2 -0
  103. package/dist/limits.js.map +1 -1
  104. package/dist/plugin/args.d.ts +148 -0
  105. package/dist/plugin/args.d.ts.map +1 -0
  106. package/dist/plugin/args.js +369 -0
  107. package/dist/plugin/args.js.map +1 -0
  108. package/dist/plugin/bridge.d.ts +146 -0
  109. package/dist/plugin/bridge.d.ts.map +1 -0
  110. package/dist/plugin/bridge.js +125 -0
  111. package/dist/plugin/bridge.js.map +1 -0
  112. package/dist/plugin/capabilities.d.ts +20 -0
  113. package/dist/plugin/capabilities.d.ts.map +1 -0
  114. package/dist/plugin/capabilities.js +133 -0
  115. package/dist/plugin/capabilities.js.map +1 -0
  116. package/dist/plugin/context.d.ts +380 -0
  117. package/dist/plugin/context.d.ts.map +1 -0
  118. package/dist/plugin/context.js +2 -0
  119. package/dist/plugin/context.js.map +1 -0
  120. package/dist/plugin/define.d.ts +208 -0
  121. package/dist/plugin/define.d.ts.map +1 -0
  122. package/dist/plugin/define.js +482 -0
  123. package/dist/plugin/define.js.map +1 -0
  124. package/dist/plugin/definition-error.d.ts +11 -0
  125. package/dist/plugin/definition-error.d.ts.map +1 -0
  126. package/dist/plugin/definition-error.js +17 -0
  127. package/dist/plugin/definition-error.js.map +1 -0
  128. package/dist/plugin/limits.d.ts +67 -0
  129. package/dist/plugin/limits.d.ts.map +1 -0
  130. package/dist/plugin/limits.js +70 -0
  131. package/dist/plugin/limits.js.map +1 -0
  132. package/dist/plugin/load-worker.d.ts +7 -0
  133. package/dist/plugin/load-worker.d.ts.map +1 -0
  134. package/dist/plugin/load-worker.js +41 -0
  135. package/dist/plugin/load-worker.js.map +1 -0
  136. package/dist/plugin/load.d.ts +18 -0
  137. package/dist/plugin/load.d.ts.map +1 -0
  138. package/dist/plugin/load.js +62 -0
  139. package/dist/plugin/load.js.map +1 -0
  140. package/dist/plugin/manifest.d.ts +237 -0
  141. package/dist/plugin/manifest.d.ts.map +1 -0
  142. package/dist/plugin/manifest.js +411 -0
  143. package/dist/plugin/manifest.js.map +1 -0
  144. package/dist/plugin/refusals.d.ts +49 -0
  145. package/dist/plugin/refusals.d.ts.map +1 -0
  146. package/dist/plugin/refusals.js +79 -0
  147. package/dist/plugin/refusals.js.map +1 -0
  148. package/dist/plugin/rest-schemas.d.ts +556 -0
  149. package/dist/plugin/rest-schemas.d.ts.map +1 -0
  150. package/dist/plugin/rest-schemas.js +262 -0
  151. package/dist/plugin/rest-schemas.js.map +1 -0
  152. package/dist/plugin/sandbox.d.ts +23 -0
  153. package/dist/plugin/sandbox.d.ts.map +1 -0
  154. package/dist/plugin/sandbox.js +99 -0
  155. package/dist/plugin/sandbox.js.map +1 -0
  156. package/dist/plugin/testing.d.ts +45 -0
  157. package/dist/plugin/testing.d.ts.map +1 -0
  158. package/dist/plugin/testing.js +420 -0
  159. package/dist/plugin/testing.js.map +1 -0
  160. package/dist/plugin/web-react.d.ts +11 -0
  161. package/dist/plugin/web-react.d.ts.map +1 -0
  162. package/dist/plugin/web-react.js +34 -0
  163. package/dist/plugin/web-react.js.map +1 -0
  164. package/dist/plugin/web.d.ts +95 -0
  165. package/dist/plugin/web.d.ts.map +1 -0
  166. package/dist/plugin/web.js +245 -0
  167. package/dist/plugin/web.js.map +1 -0
  168. package/dist/plugin-nav.d.ts +29 -0
  169. package/dist/plugin-nav.d.ts.map +1 -0
  170. package/dist/plugin-nav.js +92 -0
  171. package/dist/plugin-nav.js.map +1 -0
  172. package/dist/plugin-testing.d.ts +2 -0
  173. package/dist/plugin-testing.d.ts.map +1 -0
  174. package/dist/plugin-testing.js +4 -0
  175. package/dist/plugin-testing.js.map +1 -0
  176. package/dist/plugin-web-react.d.ts +3 -0
  177. package/dist/plugin-web-react.d.ts.map +1 -0
  178. package/dist/plugin-web-react.js +3 -0
  179. package/dist/plugin-web-react.js.map +1 -0
  180. package/dist/plugin-web.d.ts +4 -0
  181. package/dist/plugin-web.d.ts.map +1 -0
  182. package/dist/plugin-web.js +5 -0
  183. package/dist/plugin-web.js.map +1 -0
  184. package/dist/plugin.d.ts +11 -0
  185. package/dist/plugin.d.ts.map +1 -0
  186. package/dist/plugin.js +15 -0
  187. package/dist/plugin.js.map +1 -0
  188. package/dist/router.d.ts +28 -0
  189. package/dist/router.d.ts.map +1 -1
  190. package/dist/router.js +47 -0
  191. package/dist/router.js.map +1 -1
  192. package/dist/routes.d.ts +4 -0
  193. package/dist/routes.d.ts.map +1 -1
  194. package/dist/routes.js +6 -0
  195. package/dist/routes.js.map +1 -1
  196. package/dist/schemas.d.ts +194 -9
  197. package/dist/schemas.d.ts.map +1 -1
  198. package/dist/schemas.js +98 -17
  199. package/dist/schemas.js.map +1 -1
  200. package/dist/tokens.d.ts +2 -0
  201. package/dist/tokens.d.ts.map +1 -0
  202. package/dist/tokens.js +101 -0
  203. package/dist/tokens.js.map +1 -0
  204. package/dist/vocabulary.d.ts +11 -1
  205. package/dist/vocabulary.d.ts.map +1 -1
  206. package/dist/vocabulary.js +24 -0
  207. package/dist/vocabulary.js.map +1 -1
  208. package/dist/web.d.ts.map +1 -1
  209. package/dist/web.js +2 -0
  210. package/dist/web.js.map +1 -1
  211. package/docs/specs/cli.md +12 -5
  212. package/docs/specs/plugins.md +488 -0
  213. package/docs/specs/rest.md +11 -9
  214. package/package.json +26 -8
  215. package/skills/building-a-console/SKILL.md +25 -26
  216. package/skills/building-a-console/references/configuring.md +40 -0
  217. package/skills/building-a-console/references/the-default-console.md +1 -1
  218. package/skills/building-a-console/references/the-look-from-a-website.md +5 -5
  219. package/skills/building-a-plugin/SKILL.md +137 -0
  220. package/skills/deploying-a-console/SKILL.md +24 -26
  221. package/skills/deploying-a-console/references/access.md +13 -9
  222. package/skills/deploying-a-console/references/resources.md +25 -10
  223. package/skills/deploying-a-console/references/running-it-again.md +15 -0
  224. package/skills/deploying-a-console/references/sizing.md +2 -0
  225. package/skills/planning-the-board/SKILL.md +96 -0
  226. package/skills/planning-the-board/references/a-task.md +36 -0
  227. package/skills/planning-the-board/references/setting-up.md +44 -0
  228. package/skills/working-the-board/SKILL.md +43 -34
  229. package/skills/working-the-board/references/the-pack.md +19 -0
  230. package/src/api.ts +12 -0
  231. package/src/cli/cli.ts +737 -55
  232. package/src/cli/format.ts +368 -10
  233. package/src/cli/help.ts +50 -6
  234. package/src/cli/plugin-check.ts +497 -0
  235. package/src/cli/plugin-cli.ts +237 -0
  236. package/src/cli/plugin-init.ts +257 -0
  237. package/src/cli/plugin-main.ts +30 -0
  238. package/src/client.ts +322 -9
  239. package/src/compat.ts +2 -2
  240. package/src/components/board.tsx +62 -14
  241. package/src/components/comments.tsx +1 -0
  242. package/src/components/decision-form.tsx +92 -11
  243. package/src/components/decision-list.tsx +71 -2
  244. package/src/components/event-feed.tsx +42 -1
  245. package/src/components/my-decisions.tsx +4 -1
  246. package/src/components/plugin-frame.tsx +437 -0
  247. package/src/components/plugin-settings.tsx +1111 -0
  248. package/src/components/shell.tsx +82 -14
  249. package/src/components/task-view.tsx +2 -1
  250. package/src/components/workspace.tsx +18 -0
  251. package/src/console.tsx +304 -31
  252. package/src/data.ts +59 -11
  253. package/src/i18n/en.ts +175 -0
  254. package/src/i18n/ko.ts +155 -0
  255. package/src/index.ts +12 -0
  256. package/src/limits.ts +2 -0
  257. package/src/plugin/args.ts +526 -0
  258. package/src/plugin/bridge.ts +314 -0
  259. package/src/plugin/capabilities.ts +150 -0
  260. package/src/plugin/context.ts +421 -0
  261. package/src/plugin/define.ts +792 -0
  262. package/src/plugin/definition-error.ts +19 -0
  263. package/src/plugin/limits.ts +70 -0
  264. package/src/plugin/load-worker.ts +50 -0
  265. package/src/plugin/load.ts +82 -0
  266. package/src/plugin/manifest.ts +561 -0
  267. package/src/plugin/refusals.ts +94 -0
  268. package/src/plugin/rest-schemas.ts +354 -0
  269. package/src/plugin/sandbox.ts +123 -0
  270. package/src/plugin/testing.ts +612 -0
  271. package/src/plugin/web-react.ts +45 -0
  272. package/src/plugin/web.ts +403 -0
  273. package/src/plugin-nav.ts +132 -0
  274. package/src/plugin-testing.ts +10 -0
  275. package/src/plugin-web-react.ts +4 -0
  276. package/src/plugin-web.ts +35 -0
  277. package/src/plugin.ts +126 -0
  278. package/src/router.ts +73 -0
  279. package/src/routes.ts +7 -0
  280. package/src/schemas.ts +115 -18
  281. package/src/styles/console.css +330 -1
  282. package/src/tokens.ts +101 -0
  283. package/src/vocabulary.ts +30 -0
  284. package/src/web.ts +2 -0
  285. package/template/plugin/.gitignore +2 -0
  286. package/template/plugin/README.md +26 -0
  287. package/template/plugin/SKILLCDN.md +13 -0
  288. package/template/plugin/build.mjs +40 -0
  289. package/template/plugin/console-plugin.json +50 -0
  290. package/template/plugin/package.json +27 -0
  291. package/template/plugin/skills/__key__/SKILL.md +23 -0
  292. package/template/plugin/src/check.test.ts +34 -0
  293. package/template/plugin/src/server/index.test.ts +41 -0
  294. package/template/plugin/src/server/index.ts +72 -0
  295. package/template/plugin/src/web/index.css +51 -0
  296. package/template/plugin/src/web/index.ts +115 -0
  297. package/template/plugin/tsconfig.json +17 -0
  298. package/skills/working-the-board/references/setting-up.md +0 -3
  299. /package/skills/{working-the-board → planning-the-board}/references/project-rules.md +0 -0
@@ -0,0 +1,245 @@
1
+ // The frame's side of the bridge (docs/specs/plugins.md, "The bridge"): what a plugin's page
2
+ // bundles to speak to the console's page. It depends on nothing, speaks to the origin the frame
3
+ // document names alone, performs its plugin's own calls and nothing else, applies the console's
4
+ // tokens to the document, and says its height. A framework is the plugin's choice; this is below
5
+ // any.
6
+ import { BRIDGE_METHODS, isBridgePath, isBridgeToFrame, MAX_BRIDGE_TITLE_LENGTH, PLUGIN_BRIDGE_VERSION, } from "./bridge.js";
7
+ /** A refusal from the console, with its stable code, as the page relayed it. */
8
+ export class PluginBridgeError extends Error {
9
+ code;
10
+ data;
11
+ constructor(error) {
12
+ super(error.message);
13
+ this.name = "PluginBridgeError";
14
+ this.code = error.code;
15
+ this.data = error.data;
16
+ }
17
+ }
18
+ const DEFAULT_CONNECT_MS = 10_000;
19
+ function globalWindow() {
20
+ const candidate = globalThis.window;
21
+ if (candidate === undefined) {
22
+ throw new PluginBridgeError({
23
+ code: "plugin.no_window",
24
+ message: "connect() runs in a plugin's frame, where window is",
25
+ });
26
+ }
27
+ return candidate;
28
+ }
29
+ function globalDocument() {
30
+ const candidate = globalThis.document;
31
+ if (candidate === undefined) {
32
+ throw new PluginBridgeError({
33
+ code: "plugin.no_window",
34
+ message: "connect() runs in a plugin's frame, where document is",
35
+ });
36
+ }
37
+ return candidate;
38
+ }
39
+ /** Sets the console's tokens on the document's root, `--sc-*` and nothing else. */
40
+ export function applyTheme(document, theme) {
41
+ for (const [token, value] of Object.entries(theme)) {
42
+ if (token.startsWith("--sc-")) {
43
+ document.documentElement.style.setProperty(token, value);
44
+ }
45
+ }
46
+ }
47
+ function startHeightWatch(document, post) {
48
+ const body = document.body;
49
+ if (body === null) {
50
+ return () => { };
51
+ }
52
+ let last = -1;
53
+ const say = () => {
54
+ const height = Math.ceil(body.scrollHeight);
55
+ if (height !== last) {
56
+ last = height;
57
+ post(height);
58
+ }
59
+ };
60
+ say();
61
+ const observerClass = globalThis.ResizeObserver;
62
+ const elementClass = globalThis.Element;
63
+ if (observerClass !== undefined && elementClass !== undefined && body instanceof elementClass) {
64
+ const observer = new observerClass(say);
65
+ observer.observe(body);
66
+ return () => observer.disconnect();
67
+ }
68
+ const timer = setInterval(say, 500);
69
+ return () => clearInterval(timer);
70
+ }
71
+ /**
72
+ * Connects the frame to the console's page: says `ready`, waits for `init`, applies the tokens,
73
+ * and answers the connection. Call it once, when the bundle starts.
74
+ */
75
+ export function connect(options = {}) {
76
+ const win = options.window ?? globalWindow();
77
+ const doc = options.document ?? globalDocument();
78
+ const origin = doc.documentElement.dataset.console;
79
+ if (origin === undefined || origin.length === 0) {
80
+ return Promise.reject(new PluginBridgeError({
81
+ code: "plugin.no_console",
82
+ message: "the document names no console in data-console; this is not a plugin's frame",
83
+ }));
84
+ }
85
+ const post = (message, transfer) => {
86
+ win.parent.postMessage(message, origin, transfer);
87
+ };
88
+ const pending = new Map();
89
+ const eventHandlers = new Set();
90
+ const themeHandlers = new Set();
91
+ const pathHandlers = new Set();
92
+ const subscribed = new Set();
93
+ let counter = 0;
94
+ let stopHeight;
95
+ return new Promise((resolveConnect, rejectConnect) => {
96
+ let connected = false;
97
+ const timer = setTimeout(() => {
98
+ if (!connected) {
99
+ win.removeEventListener("message", listener);
100
+ rejectConnect(new PluginBridgeError({
101
+ code: "plugin.no_init",
102
+ message: `the console's page did not answer within ${options.timeoutMs ?? DEFAULT_CONNECT_MS} ms`,
103
+ }));
104
+ }
105
+ }, options.timeoutMs ?? DEFAULT_CONNECT_MS);
106
+ const call = (method, params, transfer) => {
107
+ if (!BRIDGE_METHODS.includes(method)) {
108
+ return Promise.reject(new PluginBridgeError({
109
+ code: "plugin.forbidden",
110
+ message: `${method} is not a method of the bridge`,
111
+ }));
112
+ }
113
+ counter += 1;
114
+ const id = String(counter);
115
+ return new Promise((resolve, reject) => {
116
+ pending.set(id, { resolve, reject });
117
+ post({ v: PLUGIN_BRIDGE_VERSION, t: "call", id, method, params }, transfer);
118
+ });
119
+ };
120
+ const listener = (event) => {
121
+ if (event.source !== win.parent || event.origin !== origin || !isBridgeToFrame(event.data)) {
122
+ return;
123
+ }
124
+ const message = event.data;
125
+ switch (message.t) {
126
+ case "init": {
127
+ if (connected) {
128
+ return;
129
+ }
130
+ connected = true;
131
+ clearTimeout(timer);
132
+ applyTheme(doc, message.theme);
133
+ doc.documentElement.lang = message.language;
134
+ const { v: _v, t: _t, ...context } = message;
135
+ const frame = {
136
+ context,
137
+ call: (method, params) => call(method, params),
138
+ command: (name, args = {}) => call("command", { name, args }),
139
+ query: (name, args = {}) => call("query", { name, args }),
140
+ records: {
141
+ list: (collection, query = {}) => call("records.list", { collection, ...query }),
142
+ get: (collection, id, version) => call("records.get", version === undefined ? { collection, id } : { collection, id, version }),
143
+ versions: (collection, id) => call("records.versions", { collection, id }),
144
+ },
145
+ files: {
146
+ get: (id) => call("files.get", { id }),
147
+ put: (bytes, name, type) => {
148
+ const buffer = bytes instanceof Uint8Array ? bytes.slice().buffer : bytes;
149
+ return call("files.put", { bytes: buffer, name, type }, [buffer]);
150
+ },
151
+ },
152
+ navigate: (path) => {
153
+ if (!isBridgePath(path)) {
154
+ throw new PluginBridgeError({
155
+ code: "plugin.forbidden",
156
+ message: "navigate takes a path of the console's, never a URL",
157
+ });
158
+ }
159
+ post({ v: PLUGIN_BRIDGE_VERSION, t: "navigate", path });
160
+ },
161
+ download: (id) => post({ v: PLUGIN_BRIDGE_VERSION, t: "download", id }),
162
+ setTitle: (text) => {
163
+ const title = text.slice(0, MAX_BRIDGE_TITLE_LENGTH).replace(/[\r\n]+/g, " ");
164
+ doc.title = title;
165
+ post({ v: PLUGIN_BRIDGE_VERSION, t: "title", text: title });
166
+ },
167
+ onEvent: (kinds, handler) => {
168
+ eventHandlers.add(handler);
169
+ let added = false;
170
+ for (const kind of kinds) {
171
+ if (!subscribed.has(kind)) {
172
+ subscribed.add(kind);
173
+ added = true;
174
+ }
175
+ }
176
+ if (added) {
177
+ post({ v: PLUGIN_BRIDGE_VERSION, t: "subscribe", kinds: [...subscribed] });
178
+ }
179
+ return () => eventHandlers.delete(handler);
180
+ },
181
+ onTheme: (handler) => {
182
+ themeHandlers.add(handler);
183
+ return () => themeHandlers.delete(handler);
184
+ },
185
+ onPath: (handler) => {
186
+ pathHandlers.add(handler);
187
+ return () => pathHandlers.delete(handler);
188
+ },
189
+ close: () => {
190
+ win.removeEventListener("message", listener);
191
+ stopHeight?.();
192
+ for (const { reject } of pending.values()) {
193
+ reject(new PluginBridgeError({
194
+ code: "plugin.closed",
195
+ message: "the frame closed its connection",
196
+ }));
197
+ }
198
+ pending.clear();
199
+ },
200
+ };
201
+ if (options.resize !== false) {
202
+ stopHeight = startHeightWatch(doc, (height) => post({ v: PLUGIN_BRIDGE_VERSION, t: "resize", height }));
203
+ }
204
+ resolveConnect(frame);
205
+ return;
206
+ }
207
+ case "result": {
208
+ const waiting = pending.get(message.id);
209
+ if (waiting === undefined) {
210
+ return;
211
+ }
212
+ pending.delete(message.id);
213
+ if (message.ok) {
214
+ waiting.resolve(message.value);
215
+ }
216
+ else {
217
+ waiting.reject(new PluginBridgeError(message.error ?? { code: "plugin.failed", message: "the call failed" }));
218
+ }
219
+ return;
220
+ }
221
+ case "event":
222
+ for (const handler of eventHandlers) {
223
+ handler(message.kind, message.data);
224
+ }
225
+ return;
226
+ case "theme":
227
+ applyTheme(doc, message.theme);
228
+ for (const handler of themeHandlers) {
229
+ handler(message.theme);
230
+ }
231
+ return;
232
+ case "path":
233
+ for (const handler of pathHandlers) {
234
+ handler(message.path);
235
+ }
236
+ return;
237
+ default:
238
+ return;
239
+ }
240
+ };
241
+ win.addEventListener("message", listener);
242
+ post({ v: PLUGIN_BRIDGE_VERSION, t: "ready" });
243
+ });
244
+ }
245
+ //# sourceMappingURL=web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/plugin/web.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { NavItem } from "./components/shell.js";
2
+ import type { Messages } from "./i18n/en.js";
3
+ import type { RestPlugin, RestRulesPlugin } from "./schemas.js";
4
+ /** A text in the person's language, else in English, else the first the manifest has. */
5
+ export declare function pluginWordOf(texts: Readonly<Record<string, string>> | null | undefined, language: string): string;
6
+ /** The pages of a plugin at a level, in the manifest's order: what the person may see of them. */
7
+ export declare function pluginPagesAt(plugin: RestPlugin, level: "workspace" | "project"): RestPlugin["pages"];
8
+ /** What the current address names, for the tabs to say which is current. */
9
+ export interface PluginRouteFacts {
10
+ readonly plugin: string | undefined;
11
+ }
12
+ /**
13
+ * The tabs of the plugins at a level: on the workspace, every enabled plugin with a page there the
14
+ * person may see; on a project, those bound to it (as the project's rules name them) with a
15
+ * project page. Grouped by `menu.group`, named in the person's language.
16
+ */
17
+ export declare function pluginNavItems(input: {
18
+ readonly plugins: readonly RestPlugin[];
19
+ readonly level: "workspace" | "project";
20
+ /** The project the tabs are on, with the plugins bound to it; nothing on the workspace. */
21
+ readonly project?: {
22
+ readonly key: string;
23
+ readonly plugins: readonly RestRulesPlugin[];
24
+ } | undefined;
25
+ readonly current: PluginRouteFacts;
26
+ readonly words: Messages;
27
+ readonly language: string;
28
+ }): NavItem[];
29
+ //# sourceMappingURL=plugin-nav.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-nav.d.ts","sourceRoot":"","sources":["../src/plugin-nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAQhE,yFAAyF;AACzF,wBAAgB,YAAY,CAC1B,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1D,QAAQ,EAAE,MAAM,GACf,MAAM,CAWR;AAED,kGAAkG;AAClG,wBAAgB,aAAa,CAC3B,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,WAAW,GAAG,SAAS,GAC7B,UAAU,CAAC,OAAO,CAAC,CAErB;AAYD,4EAA4E;AAC5E,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE;IACpC,QAAQ,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,CAAC;IACxC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,CAAC;IACxC,2FAA2F;IAC3F,QAAQ,CAAC,OAAO,CAAC,EACb;QAAE,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,OAAO,EAAE,SAAS,eAAe,EAAE,CAAA;KAAE,GACtE,SAAS,CAAC;IACd,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,GAAG,OAAO,EAAE,CAiEZ"}
@@ -0,0 +1,92 @@
1
+ import { pluginHref } from "./router.js";
2
+ // The tabs of the plugins (ADR-0054, docs/specs/plugins.md, "Tabs, sub-tabs and addresses"):
3
+ // after the console's own tabs, the groups that hold a plugin the person has a role in. A group
4
+ // with one plugin is a tab with the plugin's name; one with several is a tab with the group's
5
+ // name that opens the list of them. Groups and plugins are ordered by `menu.order`, then by key.
6
+ // Pure: what the tabs are, from what the console was told, for the composition and its tests.
7
+ /** A text in the person's language, else in English, else the first the manifest has. */
8
+ export function pluginWordOf(texts, language) {
9
+ if (texts === null || texts === undefined) {
10
+ return "";
11
+ }
12
+ return (texts[language] ??
13
+ texts[language.split("-")[0] ?? language] ??
14
+ texts.en ??
15
+ Object.values(texts)[0] ??
16
+ "");
17
+ }
18
+ /** The pages of a plugin at a level, in the manifest's order: what the person may see of them. */
19
+ export function pluginPagesAt(plugin, level) {
20
+ return plugin.pages.filter((page) => page.level === level);
21
+ }
22
+ /** Where a plugin's tab leads: its first page at the level. */
23
+ function firstPageHref(plugin, level, project) {
24
+ const [first] = pluginPagesAt(plugin, level);
25
+ return first === undefined ? undefined : pluginHref(plugin.key, first.key, project);
26
+ }
27
+ /**
28
+ * The tabs of the plugins at a level: on the workspace, every enabled plugin with a page there the
29
+ * person may see; on a project, those bound to it (as the project's rules name them) with a
30
+ * project page. Grouped by `menu.group`, named in the person's language.
31
+ */
32
+ export function pluginNavItems(input) {
33
+ const { plugins, level, project, current, words, language } = input;
34
+ const bound = project === undefined ? undefined : new Set(project.plugins.map((p) => p.key));
35
+ const shown = plugins
36
+ .filter((plugin) => plugin.state === "enabled")
37
+ .filter((plugin) => bound === undefined || bound.has(plugin.key))
38
+ .filter((plugin) => pluginPagesAt(plugin, level).length > 0);
39
+ const groups = new Map();
40
+ for (const plugin of shown) {
41
+ const group = plugin.menu?.group ?? "operations";
42
+ const known = words.nav.pluginGroups[group];
43
+ const name = known ??
44
+ (plugin.menu?.name === null || plugin.menu?.name === undefined
45
+ ? group
46
+ : pluginWordOf(plugin.menu.name, language));
47
+ const order = plugin.menu?.order ?? 100;
48
+ const held = groups.get(group);
49
+ if (held === undefined) {
50
+ groups.set(group, { order, name, plugins: [plugin] });
51
+ }
52
+ else {
53
+ held.plugins.push(plugin);
54
+ held.order = Math.min(held.order, order);
55
+ }
56
+ }
57
+ const byOrder = (a, b) => a.order - b.order || a.key.localeCompare(b.key);
58
+ return [...groups.entries()]
59
+ .map(([key, group]) => ({ key, ...group }))
60
+ .sort(byOrder)
61
+ .flatMap((group) => {
62
+ const members = [...group.plugins].sort((a, b) => byOrder({ order: a.menu?.order ?? 100, key: a.key }, { order: b.menu?.order ?? 100, key: b.key }));
63
+ const items = members.flatMap((plugin) => {
64
+ const href = firstPageHref(plugin, level, project?.key);
65
+ return href === undefined
66
+ ? []
67
+ : [
68
+ {
69
+ href,
70
+ label: pluginWordOf(plugin.name, language),
71
+ current: current.plugin === plugin.key,
72
+ },
73
+ ];
74
+ });
75
+ if (items.length === 0) {
76
+ return [];
77
+ }
78
+ if (items.length === 1) {
79
+ return items;
80
+ }
81
+ const first = items[0];
82
+ return [
83
+ {
84
+ href: first.href,
85
+ label: group.name,
86
+ current: items.some((item) => item.current),
87
+ children: items,
88
+ },
89
+ ];
90
+ });
91
+ }
92
+ //# sourceMappingURL=plugin-nav.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-nav.js","sourceRoot":"","sources":["../src/plugin-nav.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { createTestContext, type LoggedLine, type TestConsoleOptions, type TestContext, type TestContextOptions, } from "./plugin/testing.js";
2
+ //# sourceMappingURL=plugin-testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-testing.d.ts","sourceRoot":"","sources":["../src/plugin-testing.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,iBAAiB,EACjB,KAAK,UAAU,EACf,KAAK,kBAAkB,EACvB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,4 @@
1
+ // A context for a plugin's own tests: records in memory, the console refusing what the test did
2
+ // not provide, everything emitted and logged kept for assertions.
3
+ export { createTestContext, } from "./plugin/testing.js";
4
+ //# sourceMappingURL=plugin-testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-testing.js","sourceRoot":"","sources":["../src/plugin-testing.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,kEAAkE;AAElE,OAAO,EACL,iBAAiB,GAKlB,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export type { PluginFrame, PluginFrameContext } from "./plugin/web.js";
2
+ export { sharedConnection, type UsePlugin, usePlugin } from "./plugin/web-react.js";
3
+ //# sourceMappingURL=plugin-web-react.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-web-react.d.ts","sourceRoot":"","sources":["../src/plugin-web-react.ts"],"names":[],"mappings":"AAEA,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // The bridge as a React hook, for a plugin that chooses React: `usePlugin()`.
2
+ export { sharedConnection, usePlugin } from "./plugin/web-react.js";
3
+ //# sourceMappingURL=plugin-web-react.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-web-react.js","sourceRoot":"","sources":["../src/plugin-web-react.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAG9E,OAAO,EAAE,gBAAgB,EAAkB,SAAS,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { BRIDGE_EVENT_KINDS, BRIDGE_METHODS, type BridgeCommandResult, type BridgeError, type BridgeEventKind, type BridgeFile, type BridgeInit, type BridgeMethod, type BridgePerson, type BridgeToFrame, type BridgeToPage, isBridgePath, isBridgeToFrame, isBridgeToPage, MAX_BRIDGE_PATH_LENGTH, MAX_BRIDGE_TITLE_LENGTH, PLUGIN_BRIDGE_VERSION, } from "./plugin/bridge.js";
2
+ export type { LinkTarget, PluginRecord, RecordPage, RecordVersion } from "./plugin/context.js";
3
+ export { applyTheme, type ConnectOptions, connect, type FrameDocument, type FrameMessageEvent, type FrameRecordsQuery, type FrameWindow, PluginBridgeError, type PluginFrame, type PluginFrameContext, } from "./plugin/web.js";
4
+ //# sourceMappingURL=plugin-web.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-web.d.ts","sourceRoot":"","sources":["../src/plugin-web.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,KAAK,mBAAmB,EACxB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EACL,UAAU,EACV,KAAK,cAAc,EACnB,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,iBAAiB,EACjB,KAAK,WAAW,EAChB,KAAK,kBAAkB,GACxB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,5 @@
1
+ // The frame's side of the bridge (docs/specs/plugins.md, "The bridge"), for a plugin's web bundle:
2
+ // `connect()` and the messages. Depends on nothing; runs in a browser.
3
+ export { BRIDGE_EVENT_KINDS, BRIDGE_METHODS, isBridgePath, isBridgeToFrame, isBridgeToPage, MAX_BRIDGE_PATH_LENGTH, MAX_BRIDGE_TITLE_LENGTH, PLUGIN_BRIDGE_VERSION, } from "./plugin/bridge.js";
4
+ export { applyTheme, connect, PluginBridgeError, } from "./plugin/web.js";
5
+ //# sourceMappingURL=plugin-web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-web.js","sourceRoot":"","sources":["../src/plugin-web.ts"],"names":[],"mappings":"AAAA,mGAAmG;AACnG,uEAAuE;AAEvE,OAAO,EACL,kBAAkB,EAClB,cAAc,EAUd,YAAY,EACZ,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EACL,UAAU,EAEV,OAAO,EAKP,iBAAiB,GAGlB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export * as z from "zod";
2
+ export { ARG_TYPES, type ArgDefinition, type ArgDefinitions, type ArgDescription, type ArgsOf, type ArgType, type ArgValue, arg, argProblem, argsProblem, argUsage, argValueFromWord, type ParsedArgv, type PluginFileHandle, type PluginPersonRef, type PluginProjectRef, parseArgv, } from "./plugin/args.js";
3
+ export { CAPABILITY_WORDS, type CapabilityWords, capabilityWords, isPluginCapability, outboundAllows, PLUGIN_CAPABILITIES, PLUGIN_CAPABILITY_PREFIXES, type PluginCapability, } from "./plugin/capabilities.js";
4
+ export type * from "./plugin/context.js";
5
+ export { type ApiDefinition, type CollectionDescription, type CollectionInput, type CommandDefinition, type CommandInput, type CommandResult, defineCollection, defineCommand, defineEndpoint, definePlugin, defineQuery, describePlugin, descriptionProblems, durationMs, type EndpointAuth, type EndpointDefinition, type EndpointDescription, type EndpointInput, type HookHandler, isPluginDefinition, isQueryFile, type JobDefinition, type Lifecycle, type OperationDescription, type PluginDefinition, type PluginDescription, type PluginParts, type QueryDefinition, type QueryFile, type QueryInput, type UpgradeDefinition, } from "./plugin/define.js";
6
+ export { PluginDefinitionError } from "./plugin/definition-error.js";
7
+ export * from "./plugin/limits.js";
8
+ export { CURRENT_PLUGIN_API, isPluginKey, type Localized, localizedText, type ManifestParse, PLUGIN_API_MAJORS, PLUGIN_BOARD_NEEDS, PLUGIN_KEY_PATTERN, PLUGIN_MENU_GROUPS, PLUGIN_PAGE_LEVELS, PLUGIN_SETTING_TYPES, PLUGIN_WIDGET_PLACES, PLUGIN_WIDGET_SIZES, type PluginBoard, type PluginBoardNeeds, type PluginManifest, type PluginMenu, type PluginMenuGroup, type PluginPage, type PluginPageLevel, type PluginRole, type PluginSetting, type PluginSettingType, type PluginWidget, type PluginWidgetPlace, type PluginWidgetSize, parsePluginManifest, pluginManifestSchema, RESERVED_COMMAND_NAMES, RESERVED_PAGE_KEYS, RESERVED_PLUGIN_KEYS, SETTING_KEY_PATTERN, } from "./plugin/manifest.js";
9
+ export { isPluginError, isPluginRefusal, ownRefusalCode, PLUGIN_OWN_REFUSAL_STATUS, PLUGIN_REFUSALS, PluginError, PluginRefusal, type PluginRefusalCode, } from "./plugin/refusals.js";
10
+ export { FORBIDDEN_BUILTINS, forbiddenImportsIn, forbiddingResolve, type HardenedThread, hardenThread, isForbiddenBuiltin, REMOVED_GLOBALS, removedGlobalsIn, } from "./plugin/sandbox.js";
11
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,SAAS,EACT,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,MAAM,EACX,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,GAAG,EACH,UAAU,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAChB,KAAK,UAAU,EACf,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,eAAe,EACpB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,EAC1B,KAAK,gBAAgB,GACtB,MAAM,0BAA0B,CAAC;AAClC,mBAAmB,qBAAqB,CAAC;AACzC,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,qBAAqB,EAC1B,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EACV,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,kBAAkB,EAClB,WAAW,EACX,KAAK,aAAa,EAClB,KAAK,SAAS,EACd,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,iBAAiB,GACvB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,WAAW,EACX,KAAK,SAAS,EACd,aAAa,EACb,KAAK,aAAa,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,YAAY,EACjB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,WAAW,EACX,aAAa,EACb,KAAK,iBAAiB,GACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,KAAK,cAAc,EACnB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC"}
package/dist/plugin.js ADDED
@@ -0,0 +1,15 @@
1
+ // The contract between a console and a plugin's server module (docs/specs/plugins.md): the
2
+ // manifest's schema and words, `definePlugin` and its definers, the arguments, the types of `ctx`,
3
+ // the capabilities and the bounds, and `z`, the schema library a plugin writes its records with.
4
+ // A plugin bundles this into its server module; nothing of it is imported at runtime by the
5
+ // console, which reads the description the module yields.
6
+ export * as z from "zod";
7
+ export { ARG_TYPES, arg, argProblem, argsProblem, argUsage, argValueFromWord, parseArgv, } from "./plugin/args.js";
8
+ export { CAPABILITY_WORDS, capabilityWords, isPluginCapability, outboundAllows, PLUGIN_CAPABILITIES, PLUGIN_CAPABILITY_PREFIXES, } from "./plugin/capabilities.js";
9
+ export { defineCollection, defineCommand, defineEndpoint, definePlugin, defineQuery, describePlugin, descriptionProblems, durationMs, isPluginDefinition, isQueryFile, } from "./plugin/define.js";
10
+ export { PluginDefinitionError } from "./plugin/definition-error.js";
11
+ export * from "./plugin/limits.js";
12
+ export { CURRENT_PLUGIN_API, isPluginKey, localizedText, PLUGIN_API_MAJORS, PLUGIN_BOARD_NEEDS, PLUGIN_KEY_PATTERN, PLUGIN_MENU_GROUPS, PLUGIN_PAGE_LEVELS, PLUGIN_SETTING_TYPES, PLUGIN_WIDGET_PLACES, PLUGIN_WIDGET_SIZES, parsePluginManifest, pluginManifestSchema, RESERVED_COMMAND_NAMES, RESERVED_PAGE_KEYS, RESERVED_PLUGIN_KEYS, SETTING_KEY_PATTERN, } from "./plugin/manifest.js";
13
+ export { isPluginError, isPluginRefusal, ownRefusalCode, PLUGIN_OWN_REFUSAL_STATUS, PLUGIN_REFUSALS, PluginError, PluginRefusal, } from "./plugin/refusals.js";
14
+ export { FORBIDDEN_BUILTINS, forbiddenImportsIn, forbiddingResolve, hardenThread, isForbiddenBuiltin, REMOVED_GLOBALS, removedGlobalsIn, } from "./plugin/sandbox.js";
15
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,mGAAmG;AACnG,iGAAiG;AACjG,4FAA4F;AAC5F,0DAA0D;AAE1D,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AACzB,OAAO,EACL,SAAS,EAOT,GAAG,EACH,UAAU,EACV,WAAW,EACX,QAAQ,EACR,gBAAgB,EAKhB,SAAS,GACV,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAEhB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,mBAAmB,EACnB,0BAA0B,GAE3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAOL,gBAAgB,EAChB,aAAa,EACb,cAAc,EACd,YAAY,EACZ,WAAW,EACX,cAAc,EACd,mBAAmB,EACnB,UAAU,EAMV,kBAAkB,EAClB,WAAW,GAWZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACrE,cAAc,oBAAoB,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,WAAW,EAEX,aAAa,EAEb,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,EACpB,oBAAoB,EACpB,mBAAmB,EAcnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,aAAa,EACb,eAAe,EACf,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,WAAW,EACX,aAAa,GAEd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EAEjB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,gBAAgB,GACjB,MAAM,qBAAqB,CAAC"}
package/dist/router.d.ts CHANGED
@@ -168,6 +168,26 @@ export type Route = {
168
168
  readonly level: "project";
169
169
  readonly project: string;
170
170
  readonly page: string;
171
+ }
172
+ /** A plugin's page (docs/specs/plugins.md, "Tabs, sub-tabs and addresses"): the first when the address names none; `rest` is what follows the page, handed to the frame. */
173
+ | {
174
+ readonly name: "plugin";
175
+ readonly level: "workspace";
176
+ readonly plugin: string;
177
+ readonly page: string | undefined;
178
+ readonly rest: string;
179
+ } | {
180
+ readonly name: "plugin";
181
+ readonly level: "project";
182
+ readonly project: string;
183
+ readonly plugin: string;
184
+ readonly page: string | undefined;
185
+ readonly rest: string;
186
+ }
187
+ /** The plugins' settings, for an administrator: the list, or one plugin by its key. */
188
+ | {
189
+ readonly name: "plugins-settings";
190
+ readonly plugin: string | undefined;
171
191
  } | {
172
192
  readonly name: "not-found";
173
193
  };
@@ -196,6 +216,10 @@ export declare const PATHS: {
196
216
  readonly settings: "/settings";
197
217
  /** Where the pages a console adds of its own are: `/pages/<key>`, and `/projects/<key>/pages/<page>` on a project. */
198
218
  readonly pages: "/pages";
219
+ /** Where the plugins' pages are: `/plugins/<key>[/<page>[/<rest>]]`, and `/projects/<key>/plugins/<key>...` on a project (ADR-0054). */
220
+ readonly plugins: "/plugins";
221
+ /** The plugins' settings, for an administrator: the list, and `/settings/plugins/<key>` for one. */
222
+ readonly pluginSettings: "/settings/plugins";
199
223
  /** Where an agent's connection is approved (ADR-0011): `/connect/<code>`, or the code typed. */
200
224
  readonly connect: "/connect";
201
225
  };
@@ -232,6 +256,10 @@ export declare function workHref(week?: string): string;
232
256
  export declare function calendarHref(key: string, month?: string, filter?: BoardFilter): string;
233
257
  /** Where a page a console adds of its own is: on the workspace, or on a project when its key is given. */
234
258
  export declare function customPageHref(page: string, project?: string): string;
259
+ /** Where a plugin's page is (ADR-0054): its first page, or the one named, with what follows it; on a project when its key is given. */
260
+ export declare function pluginHref(plugin: string, page?: string, project?: string, rest?: string): string;
261
+ /** Where the plugins' settings are, or one plugin's. */
262
+ export declare function pluginSettingsHref(plugin?: string): string;
235
263
  /** Where a goal is set: the form. */
236
264
  /** Where a project's roadmap is, from a month on, or from this one when none is named. */
237
265
  export declare function roadmapHref(key: string, from?: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgD,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAU5F,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1C,iGAAiG;AACjG,MAAM,MAAM,QAAQ,GAChB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAChE;IAAE,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAA;CAAE,GACxB;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAKD,MAAM,MAAM,KAAK,GACb;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAChC;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE,GAClF;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,qEAAqE;IACrE,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,SAAS,CAAC;CACzC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;CACzB;AACH,+HAA+H;GAC7H;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC3F;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC3D;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AAC9E,qHAAqH;GACnH;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AACH,uFAAuF;GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACzF;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACzD,mGAAmG;GACjG;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACrD,8FAA8F;GAC5F;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACxD,wGAAwG;GACtG;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,CAAC;CAC5D;AACH,mJAAmJ;GACjJ;IACE,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IACpC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,SAAS,CAAC;CACjE,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE;AAC7B,2EAA2E;GACzE;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAA;CAAE;AAClC,sDAAsD;GACpD;IAAE,QAAQ,CAAC,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACzD,yGAAyG;GACvG;IAAE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GACxF;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GAC3B;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE;AAChC,2DAA2D;AAC3D,iHAAiH;GAC/G;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;AAC9D,0FAA0F;GACxF;IAAE,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAA;CAAE;AACnC,8EAA8E;GAC5E;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACjC,0FAA0F;GACxF;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE;AACjE,6EAA6E;GAC3E;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;CAAE;AACjD,wGAAwG;GACtG;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAC/E;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AACH,4KAA4K;GAC1K;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AACH,uFAAuF;GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAA;CAAE,GAC1E;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;CAAE,CAAC;AAEnC,6CAA6C;AAC7C,MAAM,MAAM,WAAW,GACnB,MAAM,GACN,WAAW,GACX,SAAS,GACT,UAAU,GACV,SAAS,GACT,MAAM,GACN,QAAQ,GACR,SAAS,GACT,UAAU,CAAC;AAEf,eAAO,MAAM,KAAK;IAChB,uDAAuD;aACvD,QAAQ,EAAE,GAAG;IACb,qEAAqE;aACrE,OAAO,EAAE,WAAW;aACpB,UAAU,EAAE,eAAe;IAC3B,uEAAuE;aACvE,IAAI,EAAE,OAAO;IACb,0FAA0F;aAC1F,SAAS,EAAE,YAAY;aACvB,MAAM,EAAE,SAAS;IACjB,gEAAgE;aAChE,UAAU,EAAE,aAAa;IACzB,mFAAmF;aACnF,MAAM,EAAE,SAAS;IACjB,iFAAiF;aACjF,QAAQ,EAAE,aAAa;IACvB,iGAAiG;aACjG,UAAU,EAAE,aAAa;IACzB,kFAAkF;aAClF,QAAQ,EAAE,WAAW;IACrB,sHAAsH;aACtH,KAAK,EAAE,QAAQ;IACf,wIAAwI;aACxI,OAAO,EAAE,UAAU;IACnB,oGAAoG;aACpG,cAAc,EAAE,mBAAmB;IACnC,gGAAgG;aAChG,OAAO,EAAE,UAAU;CACX,CAAC;AAgCX,gGAAgG;AAChG,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAW9D;AA+CD,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,KAAK,CA6M/D;AAED,+EAA+E;AAC/E,wBAAgB,WAAW,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,uDAAuD;AACvD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,iHAAiH;AACjH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAGtE;AAED,uDAAuD;AACvD,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,GAAG,MAAM,CAGnE;AAED,2GAA2G;AAC3G,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,YAAY,GAAG,MAAM,CAG/F;AAED,sGAAsG;AACtG,wBAAgB,YAAY,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,YAAY,GAAG,MAAM,CAEhF;AAED,iGAAiG;AACjG,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM,CAGvE;AAwBD,yCAAyC;AACzC,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,MAAM,CAGjF;AAED,oEAAoE;AACpE,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED,iIAAiI;AACjI,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED,4GAA4G;AAC5G,wBAAgB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,GAAE,WAAgB,GAAG,MAAM,CAI1F;AAED,0GAA0G;AAC1G,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,uIAAuI;AACvI,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,SAAK,GAAG,MAAM,CAM7F;AAED,wDAAwD;AACxD,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED,qCAAqC;AACrC,0FAA0F;AAC1F,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAG9D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,0FAA0F;AAC1F,eAAO,MAAM,eAAe,YAAI,OAAO,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AACtE,MAAM,MAAM,YAAY,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAM5D,6GAA6G;AAC7G,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACnC,0DAA0D;IAC1D,QAAQ,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC;AAED,kEAAkE;AAClE,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAE,eAAoB,GAAG,MAAM,CAQvF;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,MAAM,CAe1E;AAED,2FAA2F;AAC3F,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,4FAA4F;IAC5F,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,kGAAkG;IAClG,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAGzE;AAED,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAK3E"}