@loomweaver/devkit 0.11.0 → 0.12.1

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@loomweaver/devkit",
3
- "version": "0.11.0",
3
+ "version": "0.12.1",
4
4
  "description": "LoomWeaver: open-source plugin platform for Angular workbenches. The Nx generators: weavers, distributions, frame plugins and the integration seams, plus the manifest and i18n validators.",
5
5
  "keywords": [
6
6
  "loomweaver",
@@ -10,8 +10,10 @@ export declare const RUNTIME_NOTE = "Grants, access and the window decide what i
10
10
  /**
11
11
  * Reads every `registerCommand` literal in the given sources and reports, per command, whether an
12
12
  * agent is offered it, what would leave the agent guessing, or that the registration could not be
13
- * read. Only a callable command without a description is a warning; the rest is information, so a
14
- * plugin with private commands passes a strict run. The TypeScript compiler is passed in rather
13
+ * read, and where it is offered what the command says an agent's word is enough for, including
14
+ * that it says nothing. Only a callable command without a description is a warning; the rest is
15
+ * information, so a plugin with private commands passes a strict run. Nothing is guessed from an id
16
+ * or a title: saying nothing is a declaration the platform accepts. The TypeScript compiler is passed in rather
15
17
  * than imported, so the check costs nothing where it is not used.
16
18
  */
17
19
  export declare function validateCommands(sources: readonly CommandSource[], ts: TypeScriptModule): Finding[];
@@ -7,8 +7,10 @@ exports.RUNTIME_NOTE = 'Grants, access and the window decide what is finally off
7
7
  /**
8
8
  * Reads every `registerCommand` literal in the given sources and reports, per command, whether an
9
9
  * agent is offered it, what would leave the agent guessing, or that the registration could not be
10
- * read. Only a callable command without a description is a warning; the rest is information, so a
11
- * plugin with private commands passes a strict run. The TypeScript compiler is passed in rather
10
+ * read, and where it is offered what the command says an agent's word is enough for, including
11
+ * that it says nothing. Only a callable command without a description is a warning; the rest is
12
+ * information, so a plugin with private commands passes a strict run. Nothing is guessed from an id
13
+ * or a title: saying nothing is a declaration the platform accepts. The TypeScript compiler is passed in rather
12
14
  * than imported, so the check costs nothing where it is not used.
13
15
  */
14
16
  function validateCommands(sources, ts) {
@@ -60,6 +62,7 @@ function read(ts, file, call) {
60
62
  return { ...empty, unreadable: 'its id is not a string literal' };
61
63
  }
62
64
  const callable = properties.get('callable');
65
+ const consent = properties.get('agentConsent');
63
66
  return {
64
67
  at,
65
68
  id: id.text,
@@ -68,8 +71,47 @@ function read(ts, file, call) {
68
71
  answers: properties.has('answers'),
69
72
  returnsValue: returnsValue(ts, properties.get('run')),
70
73
  arguments: readArguments(ts, properties.get('arguments')),
74
+ ...consentOf(ts, consent),
71
75
  };
72
76
  }
77
+ function consentOf(ts, declared) {
78
+ const value = unwrapped(ts, declared);
79
+ return value && ts.isStringLiteral(value)
80
+ ? { agentConsent: value.text }
81
+ : {};
82
+ }
83
+ function unwrapped(ts, value) {
84
+ if (!value) {
85
+ return undefined;
86
+ }
87
+ return ts.isAsExpression(value) ||
88
+ ts.isSatisfiesExpression(value) ||
89
+ ts.isParenthesizedExpression(value)
90
+ ? unwrapped(ts, value.expression)
91
+ : value;
92
+ }
93
+ const STATED = ['allow', 'ask', 'ask-always', 'never'];
94
+ function consentLine(consent) {
95
+ switch (consent) {
96
+ case 'allow': {
97
+ return "says an agent's word is enough to run it.";
98
+ }
99
+ case 'ask': {
100
+ return "says the person is asked first; whoever runs it on an agent's behalf does the asking.";
101
+ }
102
+ case 'ask-always': {
103
+ return "says the person is asked every time; whoever runs it on an agent's behalf does the asking.";
104
+ }
105
+ case 'never': {
106
+ return "says it is not to be run on an agent's word; closing it to other callers is what enforces that.";
107
+ }
108
+ default: {
109
+ return consent === undefined
110
+ ? "says nothing about whether an agent's word is enough to run it."
111
+ : `declares "${consent}" about an agent's word, which is none of ${STATED.join(', ')}, so nothing reads it.`;
112
+ }
113
+ }
114
+ }
73
115
  function readArguments(ts, value) {
74
116
  if (!value || !ts.isArrayLiteralExpression(value)) {
75
117
  return [];
@@ -173,6 +215,12 @@ function judge(registration) {
173
215
  message: `${id}: offered to an agent, with ${count} described argument${count === 1 ? '' : 's'}${registration.answers ? ' and a declared answer' : ''}.`,
174
216
  });
175
217
  }
218
+ findings.push({
219
+ level: 'info',
220
+ code: 'command.consent',
221
+ path: at,
222
+ message: `${id}: ${consentLine(registration.agentConsent)}`,
223
+ });
176
224
  return findings;
177
225
  }
178
226
  //# sourceMappingURL=commands.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/lib/validate/commands.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"commands.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/lib/validate/commands.ts"],"names":[],"mappings":"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"}
@@ -196,6 +196,10 @@ function readme(d) {
196
196
  '',
197
197
  'A switch takes the **affordance and the gesture**: turning `splitRight` off removes the toolbar',
198
198
  'button, the drop edges *and* `mod+\\`, so the capability cannot come back through a second door.',
199
+ 'Two switches are finer, and named for it: `splitRightButton` and `splitDownButton` leave out the',
200
+ "pane toolbar's split button alone, for a product that offers splitting by dragging a tab to a",
201
+ "pane's edge. The command and the tab menu's entry are removed by naming them in",
202
+ '`provideShell({ omit })` instead, so each decision keeps one place.',
199
203
  'Fields merge group by group, so name only what you turn off. The groups are `content`,',
200
204
  '`sidebar`, `rail`, `workspaces`, `windows` and `commands`; everything is on by default except',
201
205
  '`content.escalate`, the unlabelled double-click cycle on a tab.',
@@ -1 +1 @@
1
- {"version":3,"file":"readme.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-distribution/readme.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"readme.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-distribution/readme.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ import type { ResolvedWeaver } from './recipe';
6
6
  * declares as a peer: two different ranges resolve to two copies, and an event built by one is not
7
7
  * the event the other switches on. `check-agent-versions` fails the build when either drifts.
8
8
  */
9
- export declare const AG_UI_ADAPTER_VERSION = "0.11.0";
9
+ export declare const AG_UI_ADAPTER_VERSION = "0.12.1";
10
10
  export declare const AG_UI_PROTOCOL_VERSION = "0.0.x";
11
11
  export declare function agentSurfaceBlock(w: ResolvedWeaver): string;
12
12
  export declare function agentFiles(w: ResolvedWeaver): FileMap;
@@ -11,7 +11,7 @@ const agent_stand_in_1 = require("./agent-stand-in");
11
11
  * declares as a peer: two different ranges resolve to two copies, and an event built by one is not
12
12
  * the event the other switches on. `check-agent-versions` fails the build when either drifts.
13
13
  */
14
- exports.AG_UI_ADAPTER_VERSION = '0.11.0';
14
+ exports.AG_UI_ADAPTER_VERSION = '0.12.1';
15
15
  exports.AG_UI_PROTOCOL_VERSION = '0.0.x';
16
16
  function connectionFile(w) {
17
17
  return `import { signal } from '@angular/core';
@@ -23,11 +23,6 @@ import {
23
23
  } from '@loomweaver/ag-ui';
24
24
  import type { PluginContext } from '@loomweaver/plugin-sdk';
25
25
 
26
- // Commands an agent may not run on its own word. Each one asks the person at the keyboard first, and
27
- // declining stops it: the workbench never sees the call. This weaver's own command is listed as an
28
- // example — replace it with the ones that actually cost something.
29
- const CONSEQUENTIAL = new Set(['${w.id}.hello']);
30
-
31
26
  // A factory, not a module-level connection: everything a run needs lives in the closure, so a second
32
27
  // one never shares state with the first.
33
28
  export function ${w.propertyName}Connection(ctx: PluginContext): CommandTools {
@@ -38,11 +33,21 @@ export function ${w.propertyName}Connection(ctx: PluginContext): CommandTools {
38
33
  // deactivate(), so the panel renders an honest empty state either side of that.
39
34
  export const ${w.propertyName}Agent = signal<CommandTools | null>(null);
40
35
 
36
+ // What an agent's word is enough for is the command's own statement, declared where the command is
37
+ // registered and read off the call here. No list of ids lives beside the commands: a list drifts from
38
+ // what it describes, and it cannot speak for a command another plugin registered. Acting on the
39
+ // statement is this weaver's half: the workbench states it and enforces nothing.
41
40
  async function decide(
42
41
  ctx: PluginContext,
43
42
  call: PendingToolCall,
44
43
  ): Promise<ToolDecision> {
45
- if (!CONSEQUENTIAL.has(call.commandId)) {
44
+ if (call.agentConsent === 'never') {
45
+ return {
46
+ decision: 'decline',
47
+ reason: 'an agent may not run this one on its own word.',
48
+ };
49
+ }
50
+ if (call.agentConsent !== 'ask' && call.agentConsent !== 'ask-always') {
46
51
  return { decision: 'run' };
47
52
  }
48
53
  const yes = await ctx.ui.confirm({
@@ -73,7 +78,8 @@ interface Asked {
73
78
  function contextThat(confirms: boolean, ran: Asked[]): PluginContext {
74
79
  return {
75
80
  invocableCommands: () => [
76
- { id: '${w.id}.hello', title: '${w.name} action', description: 'Shows a short message.' },
81
+ // agentConsent travels with the command, which is what the connection reads off the call.
82
+ { id: '${w.id}.hello', title: '${w.name} action', description: 'Shows a short message.', agentConsent: 'ask' },
77
83
  ],
78
84
  invokeCommand: (id: string, args?: CommandArguments) => {
79
85
  ran.push({ id, args });
@@ -1 +1 @@
1
- {"version":3,"file":"agent-files.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/agent-files.ts"],"names":[],"mappings":";;;AAkJA,8CAWC;AAED,gCAWC;AAxKD,+CAA6D;AAC7D,qDAA+C;AAE/C;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C,SAAS,cAAc,CAAC,CAAiB;IACvC,OAAO;;;;;;;;;;;;kCAYyB,CAAC,CAAC,EAAE;;;;kBAIpB,CAAC,CAAC,YAAY;;;;;;eAMjB,CAAC,CAAC,YAAY;;;;;;;;;;cAUf,CAAC,CAAC,EAAE;gBACF,CAAC,CAAC,EAAE;qBACC,CAAC,CAAC,EAAE;oBACL,CAAC,CAAC,EAAE;;;;;;;;;CASvB,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,CAAiB;IACjC,OAAO;;WAEE,CAAC,CAAC,YAAY,wBAAwB,CAAC,CAAC,EAAE;;;;;;;;;;eAUtC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,IAAI;;;;;;;;;;;;;;YAcjC,CAAC,CAAC,YAAY;;oBAEN,CAAC,CAAC,YAAY;8DAC4B,CAAC,CAAC,EAAE;;;;;oBAK9C,CAAC,CAAC,YAAY;;;;;;2BAMP,CAAC,CAAC,EAAE;;;;;;;;;;;;;;kCAcG,CAAC,CAAC,EAAE;;;;;;;oBAOlB,CAAC,CAAC,YAAY;;;;;yBAKT,CAAC,CAAC,EAAE;;;;;;;;;;;;;;CAc5B,CAAC;AACF,CAAC;AAED,SAAgB,iBAAiB,CAAC,CAAiB;IACjD,OAAO;QACL,2BAA2B;QAC3B,cAAc,CAAC,CAAC,EAAE,UAAU;QAC5B,iBAAiB,CAAC,CAAC,EAAE,gBAAgB;QACrC,gBAAgB,CAAC,CAAC,EAAE,IAAI;QACxB,+BAA+B;QAC/B,qBAAqB;QACrB,oBAAoB,CAAC,CAAC,SAAS,aAAa;QAC5C,SAAS;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,CAAiB;IAC1C,MAAM,KAAK,GAA2B;QACpC,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QACrD,CAAC,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,IAAA,4BAAW,EAAC,CAAC,CAAC;QACzD,CAAC,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,IAAA,uBAAS,EAAC,CAAC,CAAC;QACtD,CAAC,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,IAAA,+BAAiB,EAAC,CAAC,CAAC;KACjE,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"agent-files.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/agent-files.ts"],"names":[],"mappings":";;;AAwJA,8CAWC;AAED,gCAWC;AA9KD,+CAA6D;AAC7D,qDAA+C;AAE/C;;;;;GAKG;AACU,QAAA,qBAAqB,GAAG,QAAQ,CAAC;AACjC,QAAA,sBAAsB,GAAG,OAAO,CAAC;AAE9C,SAAS,cAAc,CAAC,CAAiB;IACvC,OAAO;;;;;;;;;;;kBAWS,CAAC,CAAC,YAAY;;;;;;eAMjB,CAAC,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;cAoBf,CAAC,CAAC,EAAE;gBACF,CAAC,CAAC,EAAE;qBACC,CAAC,CAAC,EAAE;oBACL,CAAC,CAAC,EAAE;;;;;;;;;CASvB,CAAC;AACF,CAAC;AAED,SAAS,QAAQ,CAAC,CAAiB;IACjC,OAAO;;WAEE,CAAC,CAAC,YAAY,wBAAwB,CAAC,CAAC,EAAE;;;;;;;;;;;eAWtC,CAAC,CAAC,EAAE,oBAAoB,CAAC,CAAC,IAAI;;;;;;;;;;;;;;YAcjC,CAAC,CAAC,YAAY;;oBAEN,CAAC,CAAC,YAAY;8DAC4B,CAAC,CAAC,EAAE;;;;;oBAK9C,CAAC,CAAC,YAAY;;;;;;2BAMP,CAAC,CAAC,EAAE;;;;;;;;;;;;;;kCAcG,CAAC,CAAC,EAAE;;;;;;;oBAOlB,CAAC,CAAC,YAAY;;;;;yBAKT,CAAC,CAAC,EAAE;;;;;;;;;;;;;;CAc5B,CAAC;AACF,CAAC;AAED,SAAgB,iBAAiB,CAAC,CAAiB;IACjD,OAAO;QACL,2BAA2B;QAC3B,cAAc,CAAC,CAAC,EAAE,UAAU;QAC5B,iBAAiB,CAAC,CAAC,EAAE,gBAAgB;QACrC,gBAAgB,CAAC,CAAC,EAAE,IAAI;QACxB,+BAA+B;QAC/B,qBAAqB;QACrB,oBAAoB,CAAC,CAAC,SAAS,aAAa;QAC5C,SAAS;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAgB,UAAU,CAAC,CAAiB;IAC1C,MAAM,KAAK,GAA2B;QACpC,CAAC,iBAAiB,CAAC,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC;QACrD,CAAC,iBAAiB,CAAC,CAAC,EAAE,kBAAkB,CAAC,EAAE,IAAA,4BAAW,EAAC,CAAC,CAAC;QACzD,CAAC,iBAAiB,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,IAAA,uBAAS,EAAC,CAAC,CAAC;QACtD,CAAC,iBAAiB,CAAC,CAAC,EAAE,mBAAmB,CAAC,EAAE,IAAA,+BAAiB,EAAC,CAAC,CAAC;KACjE,CAAC;IACF,IAAI,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,CAAC,iBAAiB,CAAC,CAAC,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
@@ -14,6 +14,13 @@ function commandBlock(w) {
14
14
  ` answers: '${w.id}.actionAnswers',`,
15
15
  ` shortcut: '${w.features.shortcut}',`,
16
16
  ' callable: true,',
17
+ ...(w.features.agent
18
+ ? [
19
+ " // What an agent's word is enough for. The platform states it and enforces nothing:",
20
+ ' // the asking is the connection\'s half, which reads this off the call.',
21
+ " agentConsent: 'ask',",
22
+ ]
23
+ : []),
17
24
  ' run: (_context, args) => {',
18
25
  " const tone = toneOf(args?.['tone']);",
19
26
  ` ctx.ui.toast({ message: '${w.id}.action', kind: tone });`,
@@ -1 +1 @@
1
- {"version":3,"file":"weaver-command.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/weaver-command.ts"],"names":[],"mappings":";;AAEA,oCAmBC;AAED,gCASC;AA9BD,SAAgB,YAAY,CAAC,CAAiB;IAC5C,OAAO;QACL,2BAA2B;QAC3B,cAAc,CAAC,CAAC,EAAE,UAAU;QAC5B,iBAAiB,CAAC,CAAC,EAAE,WAAW;QAChC,uBAAuB,CAAC,CAAC,EAAE,sBAAsB;QACjD,oBAAoB;QACpB,kGAAkG,CAAC,CAAC,EAAE,iBAAiB;QACvH,UAAU;QACV,mBAAmB,CAAC,CAAC,EAAE,kBAAkB;QACzC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI;QAC3C,uBAAuB;QACvB,kCAAkC;QAClC,8CAA8C;QAC9C,oCAAoC,CAAC,CAAC,EAAE,0BAA0B;QAClE,0BAA0B;QAC1B,UAAU;QACV,SAAS;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO;QACL,6CAA6C;QAC7C,EAAE;QACF,gGAAgG;QAChG,yCAAyC;QACzC,uEAAuE;QACvE,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"weaver-command.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/weaver-command.ts"],"names":[],"mappings":";;AAEA,oCA0BC;AAED,gCASC;AArCD,SAAgB,YAAY,CAAC,CAAiB;IAC5C,OAAO;QACL,2BAA2B;QAC3B,cAAc,CAAC,CAAC,EAAE,UAAU;QAC5B,iBAAiB,CAAC,CAAC,EAAE,WAAW;QAChC,uBAAuB,CAAC,CAAC,EAAE,sBAAsB;QACjD,oBAAoB;QACpB,kGAAkG,CAAC,CAAC,EAAE,iBAAiB;QACvH,UAAU;QACV,mBAAmB,CAAC,CAAC,EAAE,kBAAkB;QACzC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,QAAQ,IAAI;QAC3C,uBAAuB;QACvB,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK;YAClB,CAAC,CAAC;gBACE,2FAA2F;gBAC3F,+EAA+E;gBAC/E,4BAA4B;aAC7B;YACH,CAAC,CAAC,EAAE,CAAC;QACP,kCAAkC;QAClC,8CAA8C;QAC9C,oCAAoC,CAAC,CAAC,EAAE,0BAA0B;QAClE,0BAA0B;QAC1B,UAAU;QACV,SAAS;KACV,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC;AAED,SAAgB,UAAU;IACxB,OAAO;QACL,6CAA6C;QAC7C,EAAE;QACF,gGAAgG;QAChG,yCAAyC;QACzC,uEAAuE;QACvE,GAAG;KACJ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACf,CAAC"}
@@ -1 +1 @@
1
- export declare const PLATFORM_VERSION = "0.11.0";
1
+ export declare const PLATFORM_VERSION = "0.12.1";
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PLATFORM_VERSION = void 0;
4
- exports.PLATFORM_VERSION = '0.11.0';
4
+ exports.PLATFORM_VERSION = '0.12.1';
5
5
  //# sourceMappingURL=platform-version.js.map