@skillcdn/console 0.4.3 → 0.4.5

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 (268) hide show
  1. package/README.md +6 -6
  2. package/dist/api.d.ts +4 -4
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +4 -4
  5. package/dist/api.js.map +1 -1
  6. package/dist/cli/cli.d.ts.map +1 -1
  7. package/dist/cli/cli.js +255 -33
  8. package/dist/cli/cli.js.map +1 -1
  9. package/dist/cli/format.d.ts +20 -5
  10. package/dist/cli/format.d.ts.map +1 -1
  11. package/dist/cli/format.js +98 -26
  12. package/dist/cli/format.js.map +1 -1
  13. package/dist/cli/help.d.ts.map +1 -1
  14. package/dist/cli/help.js +39 -15
  15. package/dist/cli/help.js.map +1 -1
  16. package/dist/cli/plugin-check.d.ts +5 -1
  17. package/dist/cli/plugin-check.d.ts.map +1 -1
  18. package/dist/cli/plugin-check.js +23 -4
  19. package/dist/cli/plugin-check.js.map +1 -1
  20. package/dist/cli/plugin-cli.d.ts.map +1 -1
  21. package/dist/cli/plugin-cli.js +10 -1
  22. package/dist/cli/plugin-cli.js.map +1 -1
  23. package/dist/cli/plugin-init.d.ts +2 -0
  24. package/dist/cli/plugin-init.d.ts.map +1 -1
  25. package/dist/cli/plugin-init.js +6 -0
  26. package/dist/cli/plugin-init.js.map +1 -1
  27. package/dist/client.d.ts +32 -1
  28. package/dist/client.d.ts.map +1 -1
  29. package/dist/client.js +14 -2
  30. package/dist/client.js.map +1 -1
  31. package/dist/compat.js +1 -1
  32. package/dist/components/board.d.ts +8 -0
  33. package/dist/components/board.d.ts.map +1 -1
  34. package/dist/components/board.js +49 -18
  35. package/dist/components/board.js.map +1 -1
  36. package/dist/components/decision-form.d.ts +6 -3
  37. package/dist/components/decision-form.d.ts.map +1 -1
  38. package/dist/components/decision-form.js +24 -18
  39. package/dist/components/decision-form.js.map +1 -1
  40. package/dist/components/decision-list.d.ts +5 -1
  41. package/dist/components/decision-list.d.ts.map +1 -1
  42. package/dist/components/decision-list.js +25 -5
  43. package/dist/components/decision-list.js.map +1 -1
  44. package/dist/components/event-feed.d.ts.map +1 -1
  45. package/dist/components/event-feed.js +34 -8
  46. package/dist/components/event-feed.js.map +1 -1
  47. package/dist/components/goals.d.ts.map +1 -1
  48. package/dist/components/goals.js +2 -2
  49. package/dist/components/goals.js.map +1 -1
  50. package/dist/components/home.d.ts +35 -0
  51. package/dist/components/home.d.ts.map +1 -0
  52. package/dist/components/home.js +326 -0
  53. package/dist/components/home.js.map +1 -0
  54. package/dist/components/my-decisions.d.ts +20 -3
  55. package/dist/components/my-decisions.d.ts.map +1 -1
  56. package/dist/components/my-decisions.js +14 -1
  57. package/dist/components/my-decisions.js.map +1 -1
  58. package/dist/components/pack-connect.d.ts.map +1 -1
  59. package/dist/components/pack-connect.js +5 -4
  60. package/dist/components/pack-connect.js.map +1 -1
  61. package/dist/components/people.d.ts +45 -1
  62. package/dist/components/people.d.ts.map +1 -1
  63. package/dist/components/people.js +125 -4
  64. package/dist/components/people.js.map +1 -1
  65. package/dist/components/picker.d.ts +8 -0
  66. package/dist/components/picker.d.ts.map +1 -1
  67. package/dist/components/picker.js +2 -2
  68. package/dist/components/picker.js.map +1 -1
  69. package/dist/components/plugin-frame.d.ts +3 -13
  70. package/dist/components/plugin-frame.d.ts.map +1 -1
  71. package/dist/components/plugin-frame.js +75 -21
  72. package/dist/components/plugin-frame.js.map +1 -1
  73. package/dist/components/plugin-settings.d.ts +5 -1
  74. package/dist/components/plugin-settings.d.ts.map +1 -1
  75. package/dist/components/plugin-settings.js +283 -45
  76. package/dist/components/plugin-settings.js.map +1 -1
  77. package/dist/components/projects.d.ts +0 -8
  78. package/dist/components/projects.d.ts.map +1 -1
  79. package/dist/components/projects.js +4 -14
  80. package/dist/components/projects.js.map +1 -1
  81. package/dist/components/searches.d.ts +11 -0
  82. package/dist/components/searches.d.ts.map +1 -0
  83. package/dist/components/searches.js +30 -0
  84. package/dist/components/searches.js.map +1 -0
  85. package/dist/components/task-form.d.ts.map +1 -1
  86. package/dist/components/task-form.js +6 -5
  87. package/dist/components/task-form.js.map +1 -1
  88. package/dist/components/task-view.d.ts.map +1 -1
  89. package/dist/components/task-view.js +2 -1
  90. package/dist/components/task-view.js.map +1 -1
  91. package/dist/components/ui.d.ts +16 -0
  92. package/dist/components/ui.d.ts.map +1 -1
  93. package/dist/components/ui.js +15 -2
  94. package/dist/components/ui.js.map +1 -1
  95. package/dist/connect-page.d.ts.map +1 -1
  96. package/dist/connect-page.js +5 -6
  97. package/dist/connect-page.js.map +1 -1
  98. package/dist/console.css +1123 -258
  99. package/dist/console.d.ts +12 -4
  100. package/dist/console.d.ts.map +1 -1
  101. package/dist/console.js +123 -27
  102. package/dist/console.js.map +1 -1
  103. package/dist/data.d.ts +18 -3
  104. package/dist/data.d.ts.map +1 -1
  105. package/dist/data.js +41 -1
  106. package/dist/data.js.map +1 -1
  107. package/dist/docs-page.d.ts.map +1 -1
  108. package/dist/docs-page.js +6 -5
  109. package/dist/docs-page.js.map +1 -1
  110. package/dist/home-tiles.d.ts +92 -0
  111. package/dist/home-tiles.d.ts.map +1 -0
  112. package/dist/home-tiles.js +294 -0
  113. package/dist/home-tiles.js.map +1 -0
  114. package/dist/i18n/en.d.ts +264 -1
  115. package/dist/i18n/en.d.ts.map +1 -1
  116. package/dist/i18n/en.js +260 -1
  117. package/dist/i18n/en.js.map +1 -1
  118. package/dist/i18n/index.d.ts +4 -2
  119. package/dist/i18n/index.d.ts.map +1 -1
  120. package/dist/i18n/index.js +10 -11
  121. package/dist/i18n/index.js.map +1 -1
  122. package/dist/i18n/ko.d.ts.map +1 -1
  123. package/dist/i18n/ko.js +255 -4
  124. package/dist/i18n/ko.js.map +1 -1
  125. package/dist/index.d.ts +7 -5
  126. package/dist/index.d.ts.map +1 -1
  127. package/dist/index.js +7 -5
  128. package/dist/index.js.map +1 -1
  129. package/dist/limits.d.ts +12 -0
  130. package/dist/limits.d.ts.map +1 -1
  131. package/dist/limits.js +12 -0
  132. package/dist/limits.js.map +1 -1
  133. package/dist/plugin/args.d.ts +6 -1
  134. package/dist/plugin/args.d.ts.map +1 -1
  135. package/dist/plugin/args.js +16 -11
  136. package/dist/plugin/args.js.map +1 -1
  137. package/dist/plugin/bridge.d.ts +63 -3
  138. package/dist/plugin/bridge.d.ts.map +1 -1
  139. package/dist/plugin/bridge.js +54 -0
  140. package/dist/plugin/bridge.js.map +1 -1
  141. package/dist/plugin/capabilities.d.ts +7 -1
  142. package/dist/plugin/capabilities.d.ts.map +1 -1
  143. package/dist/plugin/capabilities.js +24 -1
  144. package/dist/plugin/capabilities.js.map +1 -1
  145. package/dist/plugin/context.d.ts +174 -12
  146. package/dist/plugin/context.d.ts.map +1 -1
  147. package/dist/plugin/define.d.ts +14 -1
  148. package/dist/plugin/define.d.ts.map +1 -1
  149. package/dist/plugin/define.js +18 -2
  150. package/dist/plugin/define.js.map +1 -1
  151. package/dist/plugin/limits.d.ts +9 -2
  152. package/dist/plugin/limits.d.ts.map +1 -1
  153. package/dist/plugin/limits.js +9 -2
  154. package/dist/plugin/limits.js.map +1 -1
  155. package/dist/plugin/manifest.d.ts +98 -6
  156. package/dist/plugin/manifest.d.ts.map +1 -1
  157. package/dist/plugin/manifest.js +171 -10
  158. package/dist/plugin/manifest.js.map +1 -1
  159. package/dist/plugin/rest-schemas.d.ts +120 -0
  160. package/dist/plugin/rest-schemas.d.ts.map +1 -1
  161. package/dist/plugin/rest-schemas.js +78 -5
  162. package/dist/plugin/rest-schemas.js.map +1 -1
  163. package/dist/plugin/sandbox.d.ts +4 -3
  164. package/dist/plugin/sandbox.d.ts.map +1 -1
  165. package/dist/plugin/sandbox.js +33 -6
  166. package/dist/plugin/sandbox.js.map +1 -1
  167. package/dist/plugin/semver.d.ts +26 -0
  168. package/dist/plugin/semver.d.ts.map +1 -0
  169. package/dist/plugin/semver.js +76 -0
  170. package/dist/plugin/semver.js.map +1 -0
  171. package/dist/plugin/testing.d.ts +15 -1
  172. package/dist/plugin/testing.d.ts.map +1 -1
  173. package/dist/plugin/testing.js +42 -5
  174. package/dist/plugin/testing.js.map +1 -1
  175. package/dist/plugin/web.d.ts +16 -1
  176. package/dist/plugin/web.d.ts.map +1 -1
  177. package/dist/plugin/web.js +44 -1
  178. package/dist/plugin/web.js.map +1 -1
  179. package/dist/plugin.d.ts +3 -2
  180. package/dist/plugin.d.ts.map +1 -1
  181. package/dist/plugin.js +3 -2
  182. package/dist/plugin.js.map +1 -1
  183. package/dist/router.d.ts +19 -0
  184. package/dist/router.d.ts.map +1 -1
  185. package/dist/router.js +18 -0
  186. package/dist/router.js.map +1 -1
  187. package/dist/routes.d.ts +11 -2
  188. package/dist/routes.d.ts.map +1 -1
  189. package/dist/routes.js +14 -1
  190. package/dist/routes.js.map +1 -1
  191. package/dist/rules.d.ts +2 -2
  192. package/dist/rules.js +3 -3
  193. package/dist/schemas.d.ts +864 -2
  194. package/dist/schemas.d.ts.map +1 -1
  195. package/dist/schemas.js +156 -9
  196. package/dist/schemas.js.map +1 -1
  197. package/dist/use-action.d.ts +8 -2
  198. package/dist/use-action.d.ts.map +1 -1
  199. package/dist/use-action.js +13 -6
  200. package/dist/use-action.js.map +1 -1
  201. package/dist/vocabulary.d.ts +3 -1
  202. package/dist/vocabulary.d.ts.map +1 -1
  203. package/dist/vocabulary.js +9 -0
  204. package/dist/vocabulary.js.map +1 -1
  205. package/docs/specs/cli.md +10 -6
  206. package/docs/specs/plugins.md +83 -62
  207. package/docs/specs/rest.md +34 -16
  208. package/package.json +1 -1
  209. package/skills/building-a-plugin/SKILL.md +15 -12
  210. package/skills/planning-the-board/references/setting-up.md +2 -1
  211. package/skills/working-the-board/SKILL.md +3 -3
  212. package/src/api.ts +23 -0
  213. package/src/cli/cli.ts +323 -30
  214. package/src/cli/format.ts +122 -26
  215. package/src/cli/help.ts +43 -14
  216. package/src/cli/plugin-check.ts +41 -2
  217. package/src/cli/plugin-cli.ts +10 -1
  218. package/src/cli/plugin-init.ts +8 -0
  219. package/src/client.ts +78 -0
  220. package/src/compat.ts +1 -1
  221. package/src/components/board.tsx +86 -45
  222. package/src/components/decision-form.tsx +73 -36
  223. package/src/components/decision-list.tsx +45 -13
  224. package/src/components/event-feed.tsx +40 -7
  225. package/src/components/goals.tsx +4 -1
  226. package/src/components/home.tsx +615 -0
  227. package/src/components/my-decisions.tsx +50 -5
  228. package/src/components/pack-connect.tsx +5 -4
  229. package/src/components/people.tsx +500 -61
  230. package/src/components/picker.tsx +11 -2
  231. package/src/components/plugin-frame.tsx +85 -63
  232. package/src/components/plugin-settings.tsx +735 -185
  233. package/src/components/projects.tsx +14 -69
  234. package/src/components/searches.ts +47 -0
  235. package/src/components/task-form.tsx +23 -28
  236. package/src/components/task-view.tsx +7 -0
  237. package/src/components/ui.tsx +42 -2
  238. package/src/connect-page.tsx +5 -6
  239. package/src/console.tsx +303 -64
  240. package/src/data.ts +62 -3
  241. package/src/docs-page.tsx +6 -5
  242. package/src/home-tiles.ts +438 -0
  243. package/src/i18n/en.ts +274 -0
  244. package/src/i18n/index.ts +17 -14
  245. package/src/i18n/ko.ts +267 -4
  246. package/src/index.ts +18 -5
  247. package/src/limits.ts +12 -0
  248. package/src/plugin/args.ts +16 -11
  249. package/src/plugin/bridge.ts +122 -1
  250. package/src/plugin/capabilities.ts +28 -1
  251. package/src/plugin/context.ts +186 -9
  252. package/src/plugin/define.ts +38 -1
  253. package/src/plugin/limits.ts +9 -2
  254. package/src/plugin/manifest.ts +228 -13
  255. package/src/plugin/rest-schemas.ts +89 -6
  256. package/src/plugin/sandbox.ts +36 -8
  257. package/src/plugin/semver.ts +89 -0
  258. package/src/plugin/testing.ts +63 -6
  259. package/src/plugin/web.ts +66 -0
  260. package/src/plugin.ts +19 -0
  261. package/src/router.ts +25 -0
  262. package/src/routes.ts +17 -2
  263. package/src/rules.ts +3 -3
  264. package/src/schemas.ts +197 -10
  265. package/src/styles/console.css +1123 -258
  266. package/src/use-action.ts +16 -7
  267. package/src/vocabulary.ts +10 -0
  268. package/template/plugin/console-plugin.json +3 -1
@@ -27,6 +27,8 @@ export type CategoryColor = ColorName;
27
27
  export declare const PROJECT_ICON_TYPES: readonly ["image/png", "image/jpeg", "image/gif", "image/webp"];
28
28
  export type ProjectIconType = (typeof PROJECT_ICON_TYPES)[number];
29
29
  /** The identity providers people may sign in through: the git host, and Google (Workspace). */
30
+ /** The languages the console's pages speak, and a plugin's words are given in. */
31
+ export declare const CONSOLE_LANGUAGES: readonly ["en", "ko"];
30
32
  export declare const PROVIDER_KEYS: readonly ["gh", "google"];
31
33
  export type ProviderKey = (typeof PROVIDER_KEYS)[number];
32
34
  export declare function isProviderKey(value: string | null | undefined): value is ProviderKey;
@@ -99,7 +101,7 @@ export type RulesSource = (typeof RULES_SOURCES)[number];
99
101
  * What can happen to the board. Every change of state is one of these, written down once with
100
102
  * who did it: the live feed shows them as they happen, and the audit trail keeps them.
101
103
  */
102
- export declare const EVENT_KINDS: readonly ["person.joined", "person.role_changed", "person.listed", "person.unlisted", "person.deactivated", "person.reactivated", "workspace.updated", "category.created", "category.updated", "category.removed", "project.created", "project.updated", "project.member_added", "project.member_changed", "project.member_removed", "goal.created", "goal.updated", "task.created", "task.updated", "task.moved", "task.commented", "task.archived", "task.restored", "decision.raised", "decision.answered", "decision.updated", "run.started", "run.reported", "run.handed_in", "run.taken_over", "run.ended", "document.written", "document.archived", "document.restored", "document.file_attached", "plugin.enabled", "plugin.disabled", "plugin.configured", "plugin.granted", "plugin.revoked", "plugin.upgraded", "plugin.command", "plugin.failed", "plugin.purged"];
104
+ export declare const EVENT_KINDS: readonly ["person.joined", "person.role_changed", "person.listed", "person.unlisted", "person.deactivated", "person.reactivated", "person.manager_changed", "person.email_changed", "team.created", "team.renamed", "team.removed", "team.member_added", "team.member_removed", "workspace.updated", "category.created", "category.updated", "category.removed", "project.created", "project.updated", "project.member_added", "project.member_changed", "project.member_removed", "goal.created", "goal.updated", "task.created", "task.updated", "task.moved", "task.commented", "task.archived", "task.restored", "decision.raised", "decision.answered", "decision.updated", "run.started", "run.reported", "run.handed_in", "run.taken_over", "run.ended", "document.written", "document.archived", "document.restored", "document.file_attached", "plugin.enabled", "plugin.disabled", "plugin.configured", "plugin.granted", "plugin.revoked", "plugin.upgraded", "plugin.command", "plugin.failed", "plugin.purged"];
103
105
  export type EventKind = (typeof EVENT_KINDS)[number];
104
106
  /**
105
107
  * The states of a plugin (docs/specs/plugins.md, "Lifecycle"): in the directory and loading;
@@ -1 +1 @@
1
- {"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"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"}
@@ -40,6 +40,8 @@ export const CATEGORY_COLORS = COLOR_NAMES;
40
40
  /** The kinds of image a project's own mark may be: what a browser shows in place, and nothing that can run. */
41
41
  export const PROJECT_ICON_TYPES = ["image/png", "image/jpeg", "image/gif", "image/webp"];
42
42
  /** The identity providers people may sign in through: the git host, and Google (Workspace). */
43
+ /** The languages the console's pages speak, and a plugin's words are given in. */
44
+ export const CONSOLE_LANGUAGES = ["en", "ko"];
43
45
  export const PROVIDER_KEYS = ["gh", "google"];
44
46
  export function isProviderKey(value) {
45
47
  return PROVIDER_KEYS.includes(value ?? "");
@@ -114,6 +116,13 @@ export const EVENT_KINDS = [
114
116
  "person.unlisted",
115
117
  "person.deactivated",
116
118
  "person.reactivated",
119
+ "person.manager_changed",
120
+ "person.email_changed",
121
+ "team.created",
122
+ "team.renamed",
123
+ "team.removed",
124
+ "team.member_added",
125
+ "team.member_removed",
117
126
  "workspace.updated",
118
127
  "category.created",
119
128
  "category.updated",
@@ -1 +1 @@
1
- {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"AAAA,qFAAqF;AACrF,gGAAgG;AAChG,8DAA8D;AAE9D,qEAAqE;AACrE,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,OAAO;IACP,aAAa;IACb,WAAW;IACX,MAAM;IACN,SAAS;CACD,CAAC;AAIX,iEAAiE;AACjE,MAAM,CAAC,MAAM,gBAAgB,GAAyB,CAAC,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC;AAEpG,mEAAmE;AACnE,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,CAAU,CAAC;AAI5E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAU,CAAC;AAI7E,4EAA4E;AAC5E,MAAM,CAAC,MAAM,gBAAgB,GAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;AAE5E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,MAAM;IACN,MAAM;IACN,OAAO;IACP,QAAQ;IACR,MAAM;IACN,QAAQ;IACR,MAAM;IACN,QAAQ;CACA,CAAC;AAIX,qDAAqD;AACrD,MAAM,CAAC,MAAM,eAAe,GAAG,WAAW,CAAC;AAI3C,+GAA+G;AAC/G,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,CAAU,CAAC;AAGlG,+FAA+F;AAC/F,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAU,CAAC;AAIvD,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,OAAQ,aAAmC,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;AACpE,CAAC;AAED,yFAAyF;AACzF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAIzD;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAU,CAAC;AAIlE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAIhF,uFAAuF;AACvF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAU,CAAC;AAI1D,yFAAyF;AACzF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,WAAW,EAAE,SAAS,CAAU,CAAC;AAItE;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,UAAU,EAAE,iBAAiB,CAAU,CAAC;AAI5E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAU,CAAC;AAIjE;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAIhF,mGAAmG;AACnG,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AAI/F,+FAA+F;AAC/F,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,UAAU,EAAE,QAAQ,EAAE,WAAW,CAAU,CAAC;AAIxE,qFAAqF;AACrF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,UAAU,EAAE,MAAM,EAAE,UAAU,CAAU,CAAC;AAItE,2EAA2E;AAC3E,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,CAAU,CAAC;AAIxD;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM;IACN,OAAO;IACP,UAAU;IACV,QAAQ;IACR,WAAW;IACX,eAAe;IACf,aAAa;CACL,CAAC;AAIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,WAAW,EAAE,SAAS,EAAE,MAAM,CAAU,CAAC;AAIvE;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,eAAe;IACf,qBAAqB;IACrB,eAAe;IACf,iBAAiB;IACjB,oBAAoB;IACpB,oBAAoB;IACpB,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,sBAAsB;IACtB,wBAAwB;IACxB,wBAAwB;IACxB,cAAc;IACd,cAAc;IACd,cAAc;IACd,cAAc;IACd,YAAY;IACZ,gBAAgB;IAChB,eAAe;IACf,eAAe;IACf,iBAAiB;IACjB,mBAAmB;IACnB,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,eAAe;IACf,gBAAgB;IAChB,WAAW;IACX,kBAAkB;IAClB,mBAAmB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,gBAAgB;IAChB,iBAAiB;IACjB,mBAAmB;IACnB,gBAAgB;IAChB,gBAAgB;IAChB,iBAAiB;IACjB,gBAAgB;IAChB,eAAe;IACf,eAAe;CACP,CAAC;AAIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,WAAW;IACX,QAAQ;IACR,SAAS;IACT,eAAe;IACf,UAAU;IACV,UAAU;CACF,CAAC;AAIX,6DAA6D;AAC7D,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAU,CAAC"}
1
+ {"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../src/vocabulary.ts"],"names":[],"mappings":"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"}
package/docs/specs/cli.md CHANGED
@@ -46,8 +46,12 @@ The board is a project's ([ADR-0008](../adr/0008-a-workspace-holds-projects-and-
46
46
  | `workspace pack-token --stdin`, `workspace pack-token --remove` | `PUT /api/v1/workspace/pack-token` with the token read from standard input, or `DELETE /api/v1/workspace/pack-token` | the workspace's settings as they are now, saying when its SkillCDN token was set and never the token: what every project with no address and no token of its own reads the organization's pack with; for an administrator |
47
47
  | `people` | `GET /api/v1/people` | one line per person the person sees (everyone, or, while the workspace narrows the people a member sees, those they share a project with and the administrators): login, name, role in the workspace, and `deactivated` for one taken out; then, where they see everyone, one line per login let in that nobody has signed in with yet. Needs no project |
48
48
  | `person role <login> <admin\|member>` | `GET /api/v1/people?login=` for the id, then `PATCH /api/v1/people/<id>` | the person as they are now; for an administrator |
49
+ | `person manager <login> <manager login\|none>` | `GET /api/v1/people?login=` for both ids, then `PATCH /api/v1/people/<id>` with `managerId` | the person as they are now, with whom they report to: the reporting line of the directory, another active person who does not report to them, or none; for an administrator (`person.invalid_manager`); `console people` shows it beside each person |
50
+ | `person email <login> <address\|none>` | `GET /api/v1/people?login=` for the id, then `PATCH /api/v1/people/<id>` with `email` | the person with their work email, which `console people` prints in angle brackets where the console answers one, to an administrator and for oneself ([ADR-0069](../adr/0069-the-directory-keeps-a-work-email-read-by-an-administrator-the-person-and-a-plugin-allowed-to.md)); for an administrator |
49
51
  | `person add <login> [--host gh\|google]`, `person remove <login>` | `POST /api/v1/listings`; `GET /api/v1/people` for the id, then `DELETE /api/v1/listings/<id>` | the login let in (the host read off the login unless `--host` says: an address is Google's, anything else the git host's), or that it is no longer; for an administrator ([ADR-0022](../adr/0022-who-is-in-is-the-consoles-own-record-and-an-administrator-keeps-it.md)) |
50
52
  | `person deactivate <login>`, `person reactivate <login>` | `GET /api/v1/people?login=` for the id, then `PATCH /api/v1/people/<id>` with `status` | the person as they are now: out, refused on every request with their agents, or back in; for an administrator; never a person the organization let in |
53
+ | `teams` | `GET /api/v1/teams`, and `GET /api/v1/people` for the logins | one line per team ([ADR-0073](../adr/0073-a-team-is-a-name-and-its-members-a-unit-to-call-people-by-and-to-grant-a-plugins-role-to.md)): its key ([ADR-0074](../adr/0074-a-team-is-called-by-a-key-that-never-changes-one-name-among-the-projects-keys.md)), its name, how many are in it, and their logins |
54
+ | `team new <key> "<name>"`, `team rename <key> "<new name>"`, `team remove <key>`, `team add <key> <login>`, `team drop <key> <login>` | `POST /api/v1/teams` with the key and the name; `PATCH` or `DELETE /api/v1/teams/<key>`; `GET /api/v1/people?login=` for the person, then `POST /api/v1/teams/<key>/members` or `DELETE .../members/<person id>` | the team as it stands, with its key and its members' logins; for an administrator. The key is a project key's shape, one among the teams' and the projects' keys, and never changes |
51
55
  | `project <key>` | `GET /api/v1/projects/<key>` | the project in full: what it is, its mark, its skills address, what the person is in it |
52
56
  | `project new <key> <name> [--description <markdown>\|--file <path>] [--visibility workspace\|private] [--skills <address>\|none] [--color <name>] [--symbol <text>]` | `POST /api/v1/projects` | the key and the name; the person is its owner; for an administrator ([ADR-0045](../adr/0045-a-project-is-made-by-an-administrator.md)) |
53
57
  | `project edit <key> [--name <name>] [the same flags; `none` clears]` | `PATCH /api/v1/projects/<key>` | the project in full, as it is now; for an owner |
@@ -59,23 +63,23 @@ The board is a project's ([ADR-0008](../adr/0008-a-workspace-holds-projects-and-
59
63
  | `category new <key> <name> [--color <name>]`, `category edit <key> [--name <name>] [--color <name>]`, `category remove <key>` | `POST /api/v1/categories`, `PATCH .../categories/<key>`, `DELETE .../categories/<key>` | the category as it is now, or that it is gone; for an administrator |
60
64
  | `skills`, `skills <folder\|file>`, `skills --search <words> [<folder>] [--limit <n>] [--cursor <cursor>]` | `GET .../skills`; `GET .../skills/browse?path=&cursor=`, page after page to the end; `GET .../skills/find?query=&path=&cursor=&limit=`, one page | the project's pack, or the organization's ([ADR-0031](../adr/0031-the-console-reads-a-pack-as-the-skillcdn-command-does-and-a-local-one-from-a-directory.md)): where it is, at a deployment or on the console's machine, and how the read went; what a client is told of it on connect, as the deployment tells one, with the reads named as the console's commands; every skill with the path of its `SKILL.md` and every document, as a search without words lists them; where a person connects an agent of its own, and where the console's own skills are on this machine. With a folder (`.` for the root; `/` is taken too, but a Windows shell rewrites it into a path before the command sees it), what it holds, whole, as `browse_repo` lays it out for a model. With a file's path, the file's outline, whole: every heading with its level and the offset and limit that read its section with `skill --file`; a file that is not Markdown has none, and the line says so (SkillCDN 0.4). With `--search`, one page of what the words find, as `search_repo` does: skills first with the files of theirs that matched, then documents, each with the sections of it that matched and the offset and limit that read each, in relevance order, within the folder when one is named, ten unless `--limit` says otherwise (up to 25), a line on how the page was ranked where the deployment searches by meaning too, and a `nextCursor` line when more matched, which `--cursor` continues. `--json` is the console's answer: what the pack answered, in the shapes of the main repository's REST API, the pages of a folder or an outline joined. The listing ends with where the plugins' own skills are: `console plugin <key> skills` |
61
65
  | `skill <path>`, `skill --file <path> [--offset <n>] [--limit <n>]` | `GET .../skills`, then `GET .../skills/one?path=&cursor=`, page after page until `complete`; with `--file`, `GET .../skills/file?path=&offset=` until the end, or, with `--offset` or `--limit`, `GET .../skills/file?path=&offset=&limit=` once | the skill whole, as `load_skill` lays it out for a model: the rules of the repository from its root to the nearest manifest, the instructions, the included files, then its supporting files and what it refers to, rendered by the main repository's own renderers with the reads named as the console's commands; or the file whole, or what a folder holds; or, with `--offset` (0 or more) or `--limit` (1 to 100,000), one page of the file as asked, the section a search or an outline named, with where the file continues; a private pack through the pack token the project holds ([ADR-0028](../adr/0028-the-console-reads-a-projects-pack-through-the-deployments-rest-api-with-a-pack-token-for-a-private-one.md)). `<path>` is the path of the SKILL.md from the repository's root, or the URI the pack names it by (`skill://<host>/<owner>/<name>/<path>`); a URI of another pack is not understood. `--file` takes no skill's path beside it, and `--offset` and `--limit` go with `--file` only: otherwise not understood. A read the pack refused prints its status and the pack's own words, and exits with `0` |
62
- | `rules` | `GET .../rules`, or `GET /api/v1/rules` without a project named, and `GET /api/v1/me` | the rules that hold, as they read for the person (`{language}` is the language they chose, or the task's) ([ADR-0023](../adr/0023-the-rules-of-a-board-are-pages-the-workspace-and-its-projects-keep-read-first-by-every-agent.md)): the workspace's, the console's own until an administrator writes the organization's, with its version and who wrote it when written; then this project's own, or that it adds none; then, under `## Plugins`, a line per plugin bound to the project that the person holds a role in, or at the workspace every plugin they may use, with the sentence its manifest gives agents and `console plugin <key>` to start with ([plugins.md](plugins.md), "The command") |
66
+ | `rules` | `GET .../rules`, or `GET /api/v1/rules` without a project named, and `GET /api/v1/me` | the rules that hold, as they read for the person (`{language}` is the language they read in, or the task's while they have none) ([ADR-0023](../adr/0023-the-rules-of-a-board-are-pages-the-workspace-and-its-projects-keep-read-first-by-every-agent.md)): the workspace's, the console's own until an administrator writes the organization's, with its version and who wrote it when written; then this project's own, or that it adds none; then, under `## Plugins`, a line per plugin bound to the project that the person holds a role in, or at the workspace every plugin they may use, with the sentence its manifest gives agents and `console plugin <key>` to start with ([plugins.md](plugins.md), "The command") |
63
67
  | `rules write --body <markdown>\|--file <path>\|-\|none [--workspace] [--base <version>]` | `PUT .../docs/rules` or `POST .../docs/rules/archive`; with `--workspace`, `PUT /api/v1/rules` or `POST /api/v1/rules/archive` | the version written, that the console's own rules sent as they are wrote nothing, or that the rules are put away; for an owner of the project, or an administrator for the workspace's |
64
68
  | `plugins` | `GET /api/v1/plugins`, `GET /api/v1/me` | one line per plugin the person may use ([plugins.md](plugins.md)): key, name in their language, version, state, their roles in it. Needs no project |
65
69
  | `plugin <key>` | `GET /api/v1/plugins/<key>`, `GET /api/v1/me` | the plugin whole: what it is, the sentence for agents, the roles held in it, its board project, a line per command and query the person may run with its usage, where its skills are, its settings |
66
70
  | `plugin <key> help [<command>]` | `GET /api/v1/plugins/<key>` | one command or query in full, as `help <command>` prints one: the usage, the arguments with their types and bounds, the roles, the refusals; or every one in a line |
67
- | `plugin <key> <command> [<args>] [--<name> <value>]... [--file <path> \| -] [--run <id>]` | `POST /api/v1/plugins/<key>/files` as a form, where `--file` or `-`; then `POST /api/v1/plugins/<key>/invoke` with the words as typed after the command's name, the handle, the project the command works in and the run named | what the command says, or a query's answer as JSON, a file a query answers saved under its name; `--json` the whole answer; exit `3` with the decision's id and `console decision <id> --wait 100` when the command raised one; the console's refusal with its code otherwise. `--json`, `--url`, `--account`, `--project`, `--file` and `--run` are the command's own wherever they stand; every other word is the plugin's, and the console parses them against the definition |
71
+ | `plugin <key> <command> [<args>] [--<name> <value>]... [--file <path> \| -] [--run <id>]` | `POST /api/v1/plugins/<key>/files` as a form, where `--file` or `-`; then `POST /api/v1/plugins/<key>/invoke` with the words as typed after the command's name, the handle, the project the command works in and the run named | what the command says, or a query's answer as JSON, a file a query answers saved under its name; `--json` the whole answer; exit `3` with the decision's id, the project it waits in and `console decision <id> --wait 100` when the command raised one, which reads it wherever it is; the console's refusal with its code otherwise. `--json`, `--url`, `--account`, `--project`, `--file` and `--run` are the command's own wherever they stand; every other word is the plugin's, and the console parses them against the definition |
68
72
  | `plugin <key> records <collection> [<id>] [--where <field>=<value>]... [--search <words>] [--project <key>] [--order <field>[:desc]] [--limit <n>] [--after <cursor>] [--archived] [--versions]` | `GET .../records/<collection>?where=&q=&project=&order=&limit=&after=&archived=`; `GET .../records/<collection>/<id>`, `.../versions` | the records the person may read, one a line with the data compact, and the cursor the next page is asked with; one record whole; its versions |
69
73
  | `plugin <key> skills [<folder>\|<file>] [--search <words>]`, `plugin <key> skill <path>`, `plugin <key> skill --file <path> [--offset <n>] [--limit <n>]` | `GET /api/v1/plugins/<key>/skills`, `.../skills/one`, `.../skills/file`, `.../skills/browse`, `.../skills/find`, as `skills` and `skill` ask a project's | the plugin's own skills, a pack read from its package, printed exactly as `skills` and `skill` print a project's |
70
- | `plugin <key> enable --consent <capability>,... [--board new\|<key>] [--projects all\|<key>,...] [--set <key>=<value>]...`, `plugin <key> disable`, `plugin <key> settings [--set <key>=<value>]...`, `plugin <key> secret <name> [--remove]`, `plugin <key> grant <role> --person <login>\|--project <key>\|--everyone`, `plugin <key> revoke <grant id>` | `GET /api/v1/plugins/<key>` first; then `POST .../enable`, `POST .../disable`, `PATCH .../settings`, `PUT` or `DELETE .../secrets/<name>` with the value read from standard input, `GET /api/v1/people?login=` then `POST .../grants`, `DELETE .../grants/<id>` | for an administrator: `enable` prints what each capability the plugin asks opens and refuses unless `--consent` names every one again, makes the board project the manifest proposes with `--board new` or chooses one by key, puts the plugin on every project or on the keys named, and sets the settings read as their types, an empty value clearing one; what changed, as it is now; a secret is sealed and shown never |
74
+ | `plugin <key> enable --consent <capability>,... [--board new\|<key>] [--projects all\|<key>,...] [--set <key>=<value>]...`, `plugin <key> disable`, `plugin <key> capabilities [--consent <capability>,...\|none]`, `plugin <key> settings [--set <key>=<value>]...`, `plugin <key> secret <name> [--remove]`, `plugin <key> grant <role> --person <login>\|--project <key>\|--plugin <key>\|--team <key>\|--everyone`, `plugin <key> revoke <grant id>` | `GET /api/v1/plugins/<key>` first; then `POST .../enable`, `POST .../disable`, `PATCH .../consent`, `PATCH .../settings`, `PUT` or `DELETE .../secrets/<name>` with the value read from standard input, `GET /api/v1/people?login=` then `POST .../grants`, `DELETE .../grants/<id>` | for an administrator: `enable` prints what each capability the plugin asks opens and refuses unless `--consent` names every one again, makes the board project the manifest proposes with `--board new` or chooses one by key, puts the plugin on every project or on the keys named, and sets the settings read as their types, an empty value clearing one; what changed, as it is now; a secret is sealed and shown never |
71
75
  | `take <number\|id> [--agent <name>]` | `GET .../tasks/<ref>`, then `POST .../runs`, then `GET .../rules`, `GET /api/v1/me`, `GET .../tasks/<ref>` again, `GET .../tasks/<id>/comments` and `GET .../runs?open=true&mine=true` | the run that began, with the run's id and the task's id on a line of their own, the task in full as it stands taken with the discussion on it, the rules that hold as they read for the person, with the plugins bound to the project under `## Plugins` as `rules` prints them, and what to do next; a run open on the task is taken over, and that is said when it happened ([ADR-0020](../adr/0020-the-console-does-not-claim-an-agent-is-at-work-a-run-says-when-it-was-last-heard-from-and-a-new-run-takes-over.md)); another run of the token open in the project is named, with the `--run <id>` to say on every command on a run from here |
72
76
  | `report <markdown> [--run <id>]`, `report --file <path> [--run <id>]`, `report - [--run <id>]` | `POST .../runs/<id>/reports` | how many reports the run carries |
73
77
  | `hand-in <https url \| file path> [--label <words>] [--run <id>]` | `POST .../runs/<id>/artifacts` for a link; `POST .../runs/<id>/files` for a file, sent as a form with its name and its media type by extension | how many artifacts; a picture handed in is shown on the task, and where a report names it as `![words](its name)` |
74
78
  | `comment <number\|id> "<markdown>" [--attach <path>]...`, `comment <number\|id> --file <path>`, `comment <number\|id> -` | `GET .../tasks/<ref>`, then `POST .../tasks/<id>/comments`: as JSON, or as one form with the part `body` and a part `file` per file attached, its media type by extension | the comment as written, with its files and the command that reads each; a word to the task's people, which needs no run ([ADR-0024](../adr/0024-a-task-carries-a-discussion-of-comments-with-their-files-read-as-one-thread-with-the-runs-and-the-decisions.md)) |
75
79
  | `file <id> [--out <path>]` | `GET .../files/<id>` | that the file is saved, where, with its size and type: under its own name in the working directory, at the path, or into the directory named; a file a run handed in, one put in a comment, or one attached to a page, so that an agent looks at a picture a person put on the board |
76
- | `ask "<question>" --option "<label>" ... [--body <markdown>\|--file <path>] [--attach <path>]... [--to <login\|me>] [--wait <seconds>] [--run <id>]` | `POST .../decisions` with `runId` and, for `--to`, `deciderId`; with `--attach`, as one form with the part `decision` and a part `file` per file, its media type by extension ([ADR-0055](../adr/0055-a-decision-carries-the-files-put-on-it-when-it-is-raised.md)); then `GET .../decisions/<id>?wait=` | the decision raised, its id on a line of its own, how many files came, whom it waits for, its options; then the answer, or that it still waits. It is for the person the agent works for unless `--to` names another of the project ([ADR-0042](../adr/0042-a-decision-is-addressed-to-a-person-its-raiser-unless-another-is-named.md)) |
77
- | `decision <id> [--wait <seconds>]` | `GET .../decisions/<id>`, with `?wait=` while waiting | the decision; with a wait, the answer or that it still waits |
78
- | `answer <id> --option <n>\|--own "<answer>" [--note <markdown>\|--file <path>]` | `POST .../decisions/<id>/answer` | the decision with its answer: a person's answer written in their name through the agent, as they gave it in chat or in passing, with where and when in the note, so that the record is whole and a run that waited goes on ([ADR-0042](../adr/0042-a-decision-is-addressed-to-a-person-its-raiser-unless-another-is-named.md)) |
80
+ | `ask "<question>" --option "<label>" ... [--body <markdown>\|--file <path>] [--attach <path>]... [--to <login\|me>]... [--wait <seconds>] [--run <id>]` | `POST .../decisions` with `runId` and, for `--to`, `deciderId`, and `deciderIds` beside it where `--to` was given more than once ([ADR-0057](../adr/0057-a-decision-may-be-addressed-to-several-people-and-the-first-answer-ends-it.md)); with `--attach`, as one form with the part `decision` and a part `file` per file, its media type by extension ([ADR-0055](../adr/0055-a-decision-carries-the-files-put-on-it-when-it-is-raised.md)); then `GET .../decisions/<id>?wait=` | the decision raised, its id on a line of its own, how many files came, whom it waits for, its options; then the answer, or that it still waits. It is for the person the agent works for unless `--to` names another of the project ([ADR-0042](../adr/0042-a-decision-is-addressed-to-a-person-its-raiser-unless-another-is-named.md)), or several, any of whom may answer, the first answer ending it |
81
+ | `decision <id> [--wait <seconds>]` | `GET .../decisions/<id>`, with `?wait=` while waiting; where the project the command works in does not have it, or none is named, `GET /api/v1/decisions/<id>`, the decision wherever it is ([ADR-0068](../adr/0068-a-decision-reaches-whom-it-is-addressed-to-wherever-it-is-and-a-plugins-reaches-the-managers-above-them.md)) | the decision; with a wait, the answer or that it still waits; `decision.not_found` for one out of reach, on a console from before the route too |
82
+ | `answer <id> --option <n>\|--own "<answer>" [--note <markdown>\|--file <path>]` | `POST .../decisions/<id>/answer`; where the project does not have it, or none is named, `POST /api/v1/decisions/<id>/answer` ([ADR-0068](../adr/0068-a-decision-reaches-whom-it-is-addressed-to-wherever-it-is-and-a-plugins-reaches-the-managers-above-them.md)) | the decision with its answer: a person's answer written in their name through the agent, as they gave it in chat or in passing, with where and when in the note, so that the record is whole and a run that waited goes on ([ADR-0042](../adr/0042-a-decision-is-addressed-to-a-person-its-raiser-unless-another-is-named.md)) |
79
83
  | `decisions [--open] [--limit <n>] [--offset <n>]`, `decisions --mine\|--raised [--open] [--limit <n>] [--offset <n>]` | `GET .../decisions`; `GET /api/v1/decisions` for `--mine`, with `raised=true` for `--raised`, neither needing a project | one line per decision, the waiting first; with `--mine`, the decisions addressed to the person across the projects they may see, with `--raised` those they asked of someone else, each with its project's key; a page at a time |
80
84
  | `finish [--summary <markdown>\|--file <path>] [--run <id>]`, `fail [...]` | `POST .../runs/<id>/end` | how the run ended |
81
85
  | `abandon [<run id>] [--summary <markdown>]` | `POST .../runs/<id>/end`, as `abandoned` | the same |