@loomweaver/devkit 0.7.6 → 0.7.7
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 +1 -1
- package/src/generators/weaver/generator.d.ts +2 -2
- package/src/generators/weaver/generator.js +18 -2
- package/src/generators/weaver/generator.js.map +1 -1
- package/src/generators/weaver/schema.json +5 -0
- package/src/index.d.ts +6 -6
- package/src/index.js +2 -1
- package/src/index.js.map +1 -1
- package/src/lib/amend/describe.js +3 -0
- package/src/lib/amend/describe.js.map +1 -1
- package/src/lib/amend/merge.d.ts +7 -1
- package/src/lib/amend/merge.js +31 -0
- package/src/lib/amend/merge.js.map +1 -1
- package/src/lib/amend/types.d.ts +12 -1
- package/src/lib/scaffolds/inputs.d.ts +1 -0
- package/src/lib/scaffolds/inputs.js +3 -1
- package/src/lib/scaffolds/inputs.js.map +1 -1
- package/src/lib/scaffolds/scaffolds.js +6 -0
- package/src/lib/scaffolds/scaffolds.js.map +1 -1
- package/src/recipes/angular-weaver/agent-files.d.ts +12 -0
- package/src/recipes/angular-weaver/agent-files.js +169 -0
- package/src/recipes/angular-weaver/agent-files.js.map +1 -0
- package/src/recipes/angular-weaver/agent-panel.d.ts +3 -0
- package/src/recipes/angular-weaver/agent-panel.js +193 -0
- package/src/recipes/angular-weaver/agent-panel.js.map +1 -0
- package/src/recipes/angular-weaver/agent-stand-in.d.ts +2 -0
- package/src/recipes/angular-weaver/agent-stand-in.js +93 -0
- package/src/recipes/angular-weaver/agent-stand-in.js.map +1 -0
- package/src/recipes/angular-weaver/amendments.d.ts +1 -1
- package/src/recipes/angular-weaver/amendments.js +17 -1
- package/src/recipes/angular-weaver/amendments.js.map +1 -1
- package/src/recipes/angular-weaver/recipe.d.ts +2 -0
- package/src/recipes/angular-weaver/recipe.js +29 -115
- package/src/recipes/angular-weaver/recipe.js.map +1 -1
- package/src/recipes/angular-weaver/weaver-i18n.d.ts +1 -1
- package/src/recipes/angular-weaver/weaver-i18n.js +11 -0
- package/src/recipes/angular-weaver/weaver-i18n.js.map +1 -1
- package/src/recipes/angular-weaver/weaver-readme.d.ts +2 -0
- package/src/recipes/angular-weaver/weaver-readme.js +142 -0
- package/src/recipes/angular-weaver/weaver-readme.js.map +1 -0
- package/src/recipes/angular-weaver/weaver-terms.d.ts +2 -0
- package/src/recipes/angular-weaver/weaver-terms.js +9 -0
- package/src/recipes/angular-weaver/weaver-terms.js.map +1 -0
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.panelFile = panelFile;
|
|
4
|
+
exports.panelTemplateFile = panelTemplateFile;
|
|
5
|
+
function panelFile(w) {
|
|
6
|
+
return `import { ChangeDetectionStrategy, Component, signal } from '@angular/core';
|
|
7
|
+
import { EventType, type BaseEvent, type Tool } from '@ag-ui/core';
|
|
8
|
+
import { ${w.propertyName}Agent } from './${w.id}-agent';
|
|
9
|
+
import { askAgent } from './${w.id}-agent-source';
|
|
10
|
+
|
|
11
|
+
interface Line {
|
|
12
|
+
readonly kind: 'you' | 'agent' | 'call' | 'result' | 'note';
|
|
13
|
+
readonly text: string;
|
|
14
|
+
readonly args?: string;
|
|
15
|
+
readonly failed?: boolean;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@Component({
|
|
19
|
+
selector: '${w.prefix}-${w.id}-agent-panel',
|
|
20
|
+
templateUrl: './${w.id}-agent-panel.html',
|
|
21
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
|
+
})
|
|
23
|
+
export class ${w.className}AgentPanel {
|
|
24
|
+
protected readonly offered = signal<readonly Tool[]>([]);
|
|
25
|
+
|
|
26
|
+
protected readonly lines = signal<readonly Line[]>([]);
|
|
27
|
+
|
|
28
|
+
protected readonly busy = signal(false);
|
|
29
|
+
|
|
30
|
+
private runs = 0;
|
|
31
|
+
|
|
32
|
+
constructor() {
|
|
33
|
+
this.offered.set(${w.propertyName}Agent()?.list() ?? []);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
protected async ask(name: string): Promise<void> {
|
|
37
|
+
const tools = ${w.propertyName}Agent();
|
|
38
|
+
if (!tools || this.busy()) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.busy.set(true);
|
|
42
|
+
try {
|
|
43
|
+
// Ask for the list again, every run. What a plugin may reach changes as plugins load and the
|
|
44
|
+
// session changes, and a list kept from earlier offers actions that are no longer there.
|
|
45
|
+
const offered = tools.list();
|
|
46
|
+
this.offered.set(offered);
|
|
47
|
+
this.push({ kind: 'you', text: \`Run \${name}\` });
|
|
48
|
+
this.push({ kind: 'note', text: \`\${offered.length} tool(s) offered right now\` });
|
|
49
|
+
|
|
50
|
+
const request = {
|
|
51
|
+
runId: \`run-\${++this.runs}\`,
|
|
52
|
+
prompt: name,
|
|
53
|
+
tools: offered,
|
|
54
|
+
};
|
|
55
|
+
for await (const event of askAgent(request)) {
|
|
56
|
+
this.draw(event);
|
|
57
|
+
// Every event goes over, unfiltered. The adapter decides which ones matter; a filter here is
|
|
58
|
+
// how a call ends up half-assembled.
|
|
59
|
+
const message = await tools.receive(event);
|
|
60
|
+
if (message) {
|
|
61
|
+
this.push({
|
|
62
|
+
kind: 'result',
|
|
63
|
+
text: message.error ?? message.content,
|
|
64
|
+
failed: Boolean(message.error),
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
// A run that ends without its closing event leaves a call open; flush() answers it.
|
|
69
|
+
const last = await tools.flush();
|
|
70
|
+
if (last) {
|
|
71
|
+
this.push({
|
|
72
|
+
kind: 'result',
|
|
73
|
+
text: last.error ?? last.content,
|
|
74
|
+
failed: Boolean(last.error),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
} finally {
|
|
78
|
+
this.busy.set(false);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
private draw(event: BaseEvent): void {
|
|
83
|
+
const raw = event as unknown as Record<string, unknown>;
|
|
84
|
+
switch (event.type) {
|
|
85
|
+
case EventType.TEXT_MESSAGE_START:
|
|
86
|
+
this.push({ kind: 'agent', text: '' });
|
|
87
|
+
break;
|
|
88
|
+
case EventType.TEXT_MESSAGE_CONTENT:
|
|
89
|
+
this.grow('text', String(raw['delta'] ?? ''));
|
|
90
|
+
break;
|
|
91
|
+
case EventType.TOOL_CALL_START:
|
|
92
|
+
this.push({
|
|
93
|
+
kind: 'call',
|
|
94
|
+
text: String(raw['toolCallName'] ?? ''),
|
|
95
|
+
args: '',
|
|
96
|
+
});
|
|
97
|
+
break;
|
|
98
|
+
case EventType.TOOL_CALL_ARGS:
|
|
99
|
+
this.grow('args', String(raw['delta'] ?? ''));
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
break;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
private push(line: Line): void {
|
|
107
|
+
this.lines.update((all) => [...all, line]);
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
private grow(field: 'text' | 'args', delta: string): void {
|
|
111
|
+
this.lines.update((all) => {
|
|
112
|
+
const last = all[all.length - 1];
|
|
113
|
+
return [
|
|
114
|
+
...all.slice(0, -1),
|
|
115
|
+
{ ...last, [field]: \`\${last[field] ?? ''}\${delta}\` },
|
|
116
|
+
];
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
`;
|
|
121
|
+
}
|
|
122
|
+
function panelTemplateFile(w) {
|
|
123
|
+
return `<div class="flex h-full flex-col gap-3">
|
|
124
|
+
<p
|
|
125
|
+
class="shrink-0 rounded-md border border-border bg-surface-raised px-3 py-2 text-xs text-content-muted"
|
|
126
|
+
>
|
|
127
|
+
This is a stand-in, not an assistant. It speaks the protocol so you can watch the whole path;
|
|
128
|
+
replace <code class="text-content">${w.id}-agent-source.ts</code> with your own transport.
|
|
129
|
+
</p>
|
|
130
|
+
|
|
131
|
+
<div class="min-h-0 flex-1 overflow-auto">
|
|
132
|
+
<ul class="flex flex-col gap-2.5">
|
|
133
|
+
@for (line of lines(); track $index) {
|
|
134
|
+
@if (line.kind === 'you') {
|
|
135
|
+
<li class="max-w-full self-end rounded-lg bg-brand-fill px-3 py-2 text-sm text-on-brand">
|
|
136
|
+
{{ line.text }}
|
|
137
|
+
</li>
|
|
138
|
+
} @else if (line.kind === 'agent') {
|
|
139
|
+
<li
|
|
140
|
+
class="max-w-full self-start rounded-lg bg-surface-raised px-3 py-2 text-sm text-content"
|
|
141
|
+
>
|
|
142
|
+
{{ line.text }}
|
|
143
|
+
</li>
|
|
144
|
+
} @else if (line.kind === 'call') {
|
|
145
|
+
<li
|
|
146
|
+
class="rounded-md border border-border px-3 py-2 font-mono text-xs break-all text-content-muted"
|
|
147
|
+
>
|
|
148
|
+
{{ line.text }}<span class="text-content-faint">({{ line.args }})</span>
|
|
149
|
+
</li>
|
|
150
|
+
} @else if (line.kind === 'result') {
|
|
151
|
+
<li
|
|
152
|
+
class="px-1 text-xs"
|
|
153
|
+
[class.text-negative]="line.failed"
|
|
154
|
+
[class.text-content-muted]="!line.failed"
|
|
155
|
+
>
|
|
156
|
+
{{ line.text }}
|
|
157
|
+
</li>
|
|
158
|
+
} @else {
|
|
159
|
+
<li class="px-1 text-xs text-content-faint">{{ line.text }}</li>
|
|
160
|
+
}
|
|
161
|
+
} @empty {
|
|
162
|
+
<li class="px-1 py-6 text-center text-sm text-content-muted">
|
|
163
|
+
Pick something below and watch the call go through.
|
|
164
|
+
</li>
|
|
165
|
+
}
|
|
166
|
+
</ul>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<div class="flex shrink-0 flex-col gap-2 border-t border-border pt-3">
|
|
170
|
+
<span class="px-1 text-xs font-medium text-content-muted">
|
|
171
|
+
Offered right now ({{ offered().length }})
|
|
172
|
+
</span>
|
|
173
|
+
@for (tool of offered(); track tool.name) {
|
|
174
|
+
<button
|
|
175
|
+
type="button"
|
|
176
|
+
class="lw-btn lw-btn--default lw-btn--sm h-auto justify-start py-2 text-left whitespace-normal"
|
|
177
|
+
[disabled]="busy()"
|
|
178
|
+
(click)="ask(tool.name)"
|
|
179
|
+
>
|
|
180
|
+
{{ tool.description }}
|
|
181
|
+
</button>
|
|
182
|
+
} @empty {
|
|
183
|
+
<span class="px-1 text-xs text-content-faint">
|
|
184
|
+
Nothing is offered. A command reaches this list only when it is registered with
|
|
185
|
+
<code class="text-content">callable: true</code>, and reaching another plugin's commands
|
|
186
|
+
needs the <code class="text-content">automation</code> capability granted.
|
|
187
|
+
</span>
|
|
188
|
+
}
|
|
189
|
+
</div>
|
|
190
|
+
</div>
|
|
191
|
+
`;
|
|
192
|
+
}
|
|
193
|
+
//# sourceMappingURL=agent-panel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-panel.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/agent-panel.ts"],"names":[],"mappings":";;AAEA,8BAoHC;AAED,8CAsEC;AA5LD,SAAgB,SAAS,CAAC,CAAiB;IACzC,OAAO;;WAEE,CAAC,CAAC,YAAY,mBAAmB,CAAC,CAAC,EAAE;8BAClB,CAAC,CAAC,EAAE;;;;;;;;;;eAUnB,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,EAAE;oBACX,CAAC,CAAC,EAAE;;;eAGT,CAAC,CAAC,SAAS;;;;;;;;;;uBAUH,CAAC,CAAC,YAAY;;;;oBAIjB,CAAC,CAAC,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmFjC,CAAC;AACF,CAAC;AAED,SAAgB,iBAAiB,CAAC,CAAiB;IACjD,OAAO;;;;;yCAKgC,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+D5C,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.standInFile = standInFile;
|
|
4
|
+
function standInFile(w) {
|
|
5
|
+
return `import { EventType, type BaseEvent, type Tool } from '@ag-ui/core';
|
|
6
|
+
|
|
7
|
+
// WHAT THIS IS: a stand-in for an agent, and not an agent. It speaks the AG-UI protocol and nothing
|
|
8
|
+
// else — no model, no network, no judgement — so that the whole path from the offered tools through
|
|
9
|
+
// a call to its outcome runs on the first serve, before you have connected anything.
|
|
10
|
+
//
|
|
11
|
+
// WHAT REPLACES IT: this file, and only this file. Point askAgent at your own endpoint and yield the
|
|
12
|
+
// events it streams back. The panel and the connection beside it stay exactly as they are.
|
|
13
|
+
|
|
14
|
+
const PACE = 40;
|
|
15
|
+
|
|
16
|
+
export interface AgentRequest {
|
|
17
|
+
readonly runId: string;
|
|
18
|
+
readonly prompt: string;
|
|
19
|
+
/** What the workbench offers right now — the same list a real agent would be handed. */
|
|
20
|
+
readonly tools: readonly Tool[];
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function* askAgent(
|
|
24
|
+
request: AgentRequest,
|
|
25
|
+
): AsyncGenerator<BaseEvent> {
|
|
26
|
+
const picked = request.tools.find((tool) =>
|
|
27
|
+
request.prompt.includes(tool.name),
|
|
28
|
+
);
|
|
29
|
+
|
|
30
|
+
yield event(EventType.RUN_STARTED, {
|
|
31
|
+
threadId: '${w.id}-stand-in',
|
|
32
|
+
runId: request.runId,
|
|
33
|
+
});
|
|
34
|
+
yield* speak(
|
|
35
|
+
\`\${request.runId}.says\`,
|
|
36
|
+
picked
|
|
37
|
+
? \`You asked for "\${request.prompt}". I can see \${request.tools.length} tool(s) and \${picked.name} is one of them, so I will call it.\`
|
|
38
|
+
: \`You asked for "\${request.prompt}", and nothing among the \${request.tools.length} tool(s) I was offered matches it, so I will not call anything.\`,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
if (picked) {
|
|
42
|
+
const toolCallId = \`\${request.runId}.call\`;
|
|
43
|
+
yield event(EventType.TOOL_CALL_START, {
|
|
44
|
+
toolCallId,
|
|
45
|
+
toolCallName: picked.name,
|
|
46
|
+
});
|
|
47
|
+
// Arguments arrive in pieces, exactly as they do from a real model. The adapter assembles them;
|
|
48
|
+
// nothing downstream ever sees a half-written call. A real agent fills them from the JSON Schema
|
|
49
|
+
// the workbench described in picked.parameters; a stand-in has nothing to fill them from, so it
|
|
50
|
+
// sends none and lets the command apply its own defaults.
|
|
51
|
+
for (const piece of chunks(JSON.stringify({}), 4)) {
|
|
52
|
+
yield event(EventType.TOOL_CALL_ARGS, { toolCallId, delta: piece });
|
|
53
|
+
await pause();
|
|
54
|
+
}
|
|
55
|
+
yield event(EventType.TOOL_CALL_END, { toolCallId });
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
yield event(EventType.RUN_FINISHED, {
|
|
59
|
+
threadId: '${w.id}-stand-in',
|
|
60
|
+
runId: request.runId,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
async function* speak(
|
|
65
|
+
messageId: string,
|
|
66
|
+
text: string,
|
|
67
|
+
): AsyncGenerator<BaseEvent> {
|
|
68
|
+
yield event(EventType.TEXT_MESSAGE_START, { messageId, role: 'assistant' });
|
|
69
|
+
for (const piece of chunks(text, 10)) {
|
|
70
|
+
yield event(EventType.TEXT_MESSAGE_CONTENT, { messageId, delta: piece });
|
|
71
|
+
await pause();
|
|
72
|
+
}
|
|
73
|
+
yield event(EventType.TEXT_MESSAGE_END, { messageId });
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function chunks(text: string, size: number): readonly string[] {
|
|
77
|
+
const pieces: string[] = [];
|
|
78
|
+
for (let at = 0; at < text.length; at += size) {
|
|
79
|
+
pieces.push(text.slice(at, at + size));
|
|
80
|
+
}
|
|
81
|
+
return pieces;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
function event(type: EventType, fields: Record<string, unknown>): BaseEvent {
|
|
85
|
+
return { type, ...fields } as unknown as BaseEvent;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
function pause(): Promise<void> {
|
|
89
|
+
return new Promise((done) => setTimeout(done, PACE));
|
|
90
|
+
}
|
|
91
|
+
`;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=agent-stand-in.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-stand-in.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/agent-stand-in.ts"],"names":[],"mappings":";;AAEA,kCAwFC;AAxFD,SAAgB,WAAW,CAAC,CAAiB;IAC3C,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;iBA0BQ,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBA4BJ,CAAC,CAAC,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCpB,CAAC;AACF,CAAC"}
|
|
@@ -2,14 +2,30 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.weaverAmendments = weaverAmendments;
|
|
4
4
|
const merge_1 = require("../../lib/amend/merge");
|
|
5
|
+
const agent_files_1 = require("./agent-files");
|
|
5
6
|
const recipe_1 = require("./recipe");
|
|
6
7
|
function weaverAmendments(input, where) {
|
|
7
8
|
const w = (0, recipe_1.resolveWeaverInput)(input);
|
|
9
|
+
const packages = w.features.agent
|
|
10
|
+
? [
|
|
11
|
+
{
|
|
12
|
+
kind: 'package',
|
|
13
|
+
name: '@loomweaver/ag-ui',
|
|
14
|
+
version: `^${agent_files_1.AG_UI_ADAPTER_VERSION}`,
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
kind: 'package',
|
|
18
|
+
name: '@ag-ui/core',
|
|
19
|
+
version: agent_files_1.AG_UI_PROTOCOL_VERSION,
|
|
20
|
+
},
|
|
21
|
+
]
|
|
22
|
+
: [];
|
|
8
23
|
const directory = (0, merge_1.normalizeProjectRoot)(where ?? '');
|
|
9
24
|
if (!directory) {
|
|
10
|
-
return
|
|
25
|
+
return packages;
|
|
11
26
|
}
|
|
12
27
|
return [
|
|
28
|
+
...packages,
|
|
13
29
|
{
|
|
14
30
|
kind: 'build-target',
|
|
15
31
|
styles: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"amendments.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/amendments.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"amendments.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/amendments.ts"],"names":[],"mappings":";;AAKA,4CA8CC;AAnDD,iDAA6D;AAE7D,+CAA8E;AAC9E,qCAAgE;AAEhE,SAAgB,gBAAgB,CAC9B,KAAkB,EAClB,KAAyB;IAEzB,MAAM,CAAC,GAAG,IAAA,2BAAkB,EAAC,KAAK,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAyB,CAAC,CAAC,QAAQ,CAAC,KAAK;QACrD,CAAC,CAAC;YACE;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,mBAAmB;gBACzB,OAAO,EAAE,IAAI,mCAAqB,EAAE;aACrC;YACD;gBACE,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,aAAa;gBACnB,OAAO,EAAE,oCAAsB;aAChC;SACF;QACH,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,SAAS,GAAG,IAAA,4BAAoB,EAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACpD,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO;QACL,GAAG,QAAQ;QACX;YACE,IAAI,EAAE,cAAc;YACpB,MAAM,EAAE,EAAE;YACV,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,WAAW;oBACjB,KAAK,EAAE,GAAG,SAAS,eAAe;oBAClC,IAAI,EAAE,WAAW;oBACjB,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,EAAE;iBACvB;aACF;SACF;QACD,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,SAAS,MAAM,EAAE;QAC7D;YACE,IAAI,EAAE,gBAAgB;YACtB,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,MAAM,EAAE,GAAG,CAAC,CAAC,YAAY,QAAQ;YACjC,YAAY,EAAE,CAAC,CAAC,YAAY;YAC5B,UAAU,EAAE,GAAG,SAAS,MAAM;SAC/B;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -9,6 +9,7 @@ export interface WeaverFeatures {
|
|
|
9
9
|
readonly about?: boolean;
|
|
10
10
|
readonly instanceable?: boolean;
|
|
11
11
|
readonly container?: boolean;
|
|
12
|
+
readonly agent?: boolean;
|
|
12
13
|
readonly spec?: boolean;
|
|
13
14
|
}
|
|
14
15
|
export interface WeaverInput {
|
|
@@ -31,6 +32,7 @@ interface ResolvedFeatures {
|
|
|
31
32
|
readonly about: boolean;
|
|
32
33
|
readonly instanceable: boolean;
|
|
33
34
|
readonly container: boolean;
|
|
35
|
+
readonly agent: boolean;
|
|
34
36
|
readonly spec: boolean;
|
|
35
37
|
}
|
|
36
38
|
export interface ResolvedWeaver {
|
|
@@ -4,6 +4,9 @@ exports.angularWeaver = void 0;
|
|
|
4
4
|
exports.resolveWeaverInput = resolveWeaverInput;
|
|
5
5
|
const casing_1 = require("../../lib/generate/casing");
|
|
6
6
|
const manifest_1 = require("../../lib/validate/manifest");
|
|
7
|
+
const agent_files_1 = require("./agent-files");
|
|
8
|
+
const weaver_terms_1 = require("./weaver-terms");
|
|
9
|
+
const weaver_readme_1 = require("./weaver-readme");
|
|
7
10
|
const weaver_i18n_1 = require("./weaver-i18n");
|
|
8
11
|
const DEFAULT_MENU_SLOT = 'content/tab/context';
|
|
9
12
|
const SURFACE_ICON = '<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" aria-hidden="true"><rect x="4" y="4" width="16" height="16" rx="3"/><path d="M8 9h8M8 13h8M8 17h5"/></svg>';
|
|
@@ -57,11 +60,13 @@ function resolveFeatures(id, input) {
|
|
|
57
60
|
if (instanceable && container) {
|
|
58
61
|
throw new Error('A surface cannot be both a container and instanceable: a container tab holds its own ":id" and is therefore routable, while named instances exist only for a docked, non-routable surface. Pick one.');
|
|
59
62
|
}
|
|
63
|
+
const agent = Boolean(input?.agent);
|
|
60
64
|
return {
|
|
61
65
|
command: Boolean(input?.command) ||
|
|
62
66
|
menuSlot !== undefined ||
|
|
63
67
|
barItem ||
|
|
64
|
-
hasShortcut
|
|
68
|
+
hasShortcut ||
|
|
69
|
+
agent,
|
|
65
70
|
menuSlot,
|
|
66
71
|
settings: Boolean(input?.settings),
|
|
67
72
|
access: input?.access ? accessLiteral(input.access) : undefined,
|
|
@@ -70,6 +75,7 @@ function resolveFeatures(id, input) {
|
|
|
70
75
|
about: Boolean(input?.about),
|
|
71
76
|
instanceable,
|
|
72
77
|
container,
|
|
78
|
+
agent,
|
|
73
79
|
spec: input?.spec !== false,
|
|
74
80
|
};
|
|
75
81
|
}
|
|
@@ -81,6 +87,10 @@ function deriveCapabilities(features) {
|
|
|
81
87
|
set.add('ui');
|
|
82
88
|
set.add('host');
|
|
83
89
|
}
|
|
90
|
+
if (features.agent) {
|
|
91
|
+
set.add('ui');
|
|
92
|
+
set.add('automation');
|
|
93
|
+
}
|
|
84
94
|
return manifest_1.KNOWN_CAPABILITIES.filter((capability) => set.has(capability));
|
|
85
95
|
}
|
|
86
96
|
function resolveWeaverInput(input) {
|
|
@@ -102,10 +112,6 @@ function resolveWeaverInput(input) {
|
|
|
102
112
|
importPath: input.importPath?.trim() || `@loomweaver/${input.id}-weaver`,
|
|
103
113
|
};
|
|
104
114
|
}
|
|
105
|
-
function capabilityItems(capabilities) {
|
|
106
|
-
return capabilities.map((capability) => `'${capability}'`).join(', ');
|
|
107
|
-
}
|
|
108
|
-
const CONTAINER_EXAMPLE_ID = 'example';
|
|
109
115
|
function containerChildIds(w) {
|
|
110
116
|
return [`${w.id}.canvas`, `${w.id}.details`];
|
|
111
117
|
}
|
|
@@ -159,7 +165,7 @@ function surfaceBlock(w) {
|
|
|
159
165
|
}
|
|
160
166
|
function railTarget(w) {
|
|
161
167
|
if (w.features.container) {
|
|
162
|
-
return `ctx.navigateContent('${w.id}/${CONTAINER_EXAMPLE_ID}')`;
|
|
168
|
+
return `ctx.navigateContent('${w.id}/${weaver_terms_1.CONTAINER_EXAMPLE_ID}')`;
|
|
163
169
|
}
|
|
164
170
|
if (w.features.instanceable) {
|
|
165
171
|
return `ctx.revealSurface('${w.id}')`;
|
|
@@ -264,6 +270,9 @@ function pluginFile(w) {
|
|
|
264
270
|
if (w.features.about) {
|
|
265
271
|
imports.push(`import { ${w.className}AboutDialog } from '../dialogs/${w.id}-about-dialog';`);
|
|
266
272
|
}
|
|
273
|
+
if (w.features.agent) {
|
|
274
|
+
imports.push(`import { ${w.propertyName}Agent, ${w.propertyName}Connection } from '../agent/${w.id}-agent';`, `import { ${w.className}AgentPanel } from '../agent/${w.id}-agent-panel';`);
|
|
275
|
+
}
|
|
267
276
|
if (w.features.settings) {
|
|
268
277
|
imports.unshift("import { signal } from '@angular/core';");
|
|
269
278
|
}
|
|
@@ -272,6 +281,9 @@ function pluginFile(w) {
|
|
|
272
281
|
consts.push(`const ${w.propertyName}Enabled = signal(true);`, `const ${w.propertyName}Note = signal('');`);
|
|
273
282
|
}
|
|
274
283
|
const body = [` ctx.contributeIcons({ '${w.id}': icon });`];
|
|
284
|
+
if (w.features.agent) {
|
|
285
|
+
body.push(` ${w.propertyName}Agent.set(${w.propertyName}Connection(ctx));`);
|
|
286
|
+
}
|
|
275
287
|
if (w.features.command)
|
|
276
288
|
body.push(commandBlock(w));
|
|
277
289
|
if (w.features.about)
|
|
@@ -285,6 +297,11 @@ function pluginFile(w) {
|
|
|
285
297
|
body.push(menuBlock(w));
|
|
286
298
|
if (w.features.settings)
|
|
287
299
|
body.push(settingsBlock(w));
|
|
300
|
+
if (w.features.agent)
|
|
301
|
+
body.push((0, agent_files_1.agentSurfaceBlock)(w));
|
|
302
|
+
const deactivate = w.features.agent
|
|
303
|
+
? `\n deactivate() {\n ${w.propertyName}Agent.set(null);\n },`
|
|
304
|
+
: '';
|
|
288
305
|
return `${imports.join('\n')}
|
|
289
306
|
|
|
290
307
|
${consts.join('\n')}
|
|
@@ -293,11 +310,11 @@ export const ${w.propertyName}Plugin: Plugin = {
|
|
|
293
310
|
manifest: {
|
|
294
311
|
id: '${w.id}',
|
|
295
312
|
name: '${w.name}',
|
|
296
|
-
capabilities: [${capabilityItems(w.capabilities)}],
|
|
313
|
+
capabilities: [${(0, weaver_terms_1.capabilityItems)(w.capabilities)}],
|
|
297
314
|
},
|
|
298
315
|
activate(ctx) {
|
|
299
316
|
${body.join('\n')}
|
|
300
|
-
}
|
|
317
|
+
},${deactivate}
|
|
301
318
|
};
|
|
302
319
|
`;
|
|
303
320
|
}
|
|
@@ -425,112 +442,6 @@ describe('${w.propertyName}Plugin', () => {
|
|
|
425
442
|
});
|
|
426
443
|
`;
|
|
427
444
|
}
|
|
428
|
-
function surfaceNotes(w) {
|
|
429
|
-
const railNote = 'Rail and bar items reference region ids (`primary`, `status`) that must exist in your layout.';
|
|
430
|
-
if (w.features.container) {
|
|
431
|
-
return [
|
|
432
|
-
`The surface is a **container**: it is routable at \`/${w.id}/:id\`, and its tab holds a`,
|
|
433
|
-
'nested pane tree of child surfaces. The host draws the inner tabs, splits and drag targets; this',
|
|
434
|
-
'weaver only declares which children it offers.',
|
|
435
|
-
'',
|
|
436
|
-
`- \`children\` is what the inner "new tab" picker lists — the host access-gates it for you.`,
|
|
437
|
-
'- `initial` is what a freshly opened container tab starts with.',
|
|
438
|
-
`- The children declare \`docks: []\`. That is the container-only convention: they are never seeded`,
|
|
439
|
-
' into a sidebar, they exist solely inside this container.',
|
|
440
|
-
`- Each child reads the container's \`:id\` from an injected \`ActivatedRoute\` — the host supplies a`,
|
|
441
|
-
' synthetic one, so a child needs no knowledge of where it is mounted. Two open container tabs are',
|
|
442
|
-
' two independent trees, each scoped to its own id.',
|
|
443
|
-
`- The inner tree is **sealed**: a child cannot be dragged out, and nothing can be dragged in. It`,
|
|
444
|
-
' travels with the tab, including into a sidebar or a pop-out window.',
|
|
445
|
-
'',
|
|
446
|
-
`The rail item opens the fixed id \`${CONTAINER_EXAMPLE_ID}\`. Replace that with whatever the user`,
|
|
447
|
-
'actually picked — a document, a run, a project.',
|
|
448
|
-
'',
|
|
449
|
-
railNote,
|
|
450
|
-
];
|
|
451
|
-
}
|
|
452
|
-
if (w.features.instanceable) {
|
|
453
|
-
return [
|
|
454
|
-
`The surface is **docked** into the \`primary\` region and marked \`instanceable\`, so the host shows a`,
|
|
455
|
-
'switcher for saving, naming, renaming and deleting several configurations of it, each with its own',
|
|
456
|
-
'`VIEW_STATE` blob.',
|
|
457
|
-
'',
|
|
458
|
-
'It is deliberately **not** routable. Named instances exist only for a docked surface — a routable',
|
|
459
|
-
'one holds the URL pane instead, and the host drops `instanceable` on that path. The rail item',
|
|
460
|
-
'therefore reveals the surface (`ctx.revealSurface`) rather than navigating to a URL, which focuses',
|
|
461
|
-
'it wherever the user has since moved it.',
|
|
462
|
-
'',
|
|
463
|
-
'The generated view already uses that blob for its sort order, because a hidden surface is destroyed',
|
|
464
|
-
'as soon as it is clean: state kept in a component field survives neither a tab switch nor',
|
|
465
|
-
'a collapsed sidebar, and never survived a reload. The rule is *evictable = reload-safe* — anything',
|
|
466
|
-
'that must not be lost goes through `VIEW_STATE`, and `set()` replaces the whole blob, so spread it.',
|
|
467
|
-
'',
|
|
468
|
-
railNote,
|
|
469
|
-
];
|
|
470
|
-
}
|
|
471
|
-
return [
|
|
472
|
-
`The surface is routable at \`/${w.id}\`; ${railNote.charAt(0).toLowerCase()}${railNote.slice(1)}`,
|
|
473
|
-
'',
|
|
474
|
-
'A routable surface has **no `VIEW_STATE` handle** — injecting the token there throws. It owns a URL,',
|
|
475
|
-
'so anything shareable (a filter, the active sub-tab) belongs in route params or `subRoutes`, where it',
|
|
476
|
-
'survives a deep link too; unsaved edits are `DirtySurface`, and an instance that is expensive to',
|
|
477
|
-
'rebuild declares `retain: \'always\'`. Generate with `--instanceable` for the docked, `VIEW_STATE`',
|
|
478
|
-
'flavour instead.',
|
|
479
|
-
];
|
|
480
|
-
}
|
|
481
|
-
function readmeFile(w) {
|
|
482
|
-
return [
|
|
483
|
-
`# ${w.name} weaver`,
|
|
484
|
-
'',
|
|
485
|
-
`A LoomWeaver weaver (a domain plugin bundle). It consumes only the public \`@loomweaver/plugin-sdk\` contract.`,
|
|
486
|
-
'',
|
|
487
|
-
'## Wire it into a distribution',
|
|
488
|
-
'',
|
|
489
|
-
`1. Add the plugin to \`providePlugins\` in \`src/app/app.config.ts\`. It is **variadic** and`,
|
|
490
|
-
` returns an array, so spread it:`,
|
|
491
|
-
'',
|
|
492
|
-
' ```ts',
|
|
493
|
-
` import { ${w.propertyName}Plugin } from '${w.importPath}'; // Nx: the workspace alias; without one, a relative path to this library's src/index.ts`,
|
|
494
|
-
` ...providePlugins(${w.propertyName}Plugin),`,
|
|
495
|
-
' ```',
|
|
496
|
-
'',
|
|
497
|
-
`2. Grant its capabilities (default-deny) via \`provideCapabilityGrants\`:`,
|
|
498
|
-
'',
|
|
499
|
-
' ```ts',
|
|
500
|
-
` provideCapabilityGrants({ '${w.id}': [${capabilityItems(w.capabilities)}] });`,
|
|
501
|
-
' ```',
|
|
502
|
-
'',
|
|
503
|
-
`3. Compose its translations with \`provideTranslationNamespaces('${w.id}')\` — and serve the`,
|
|
504
|
-
` bundle by adding an assets glob to your application's build target, so the loader can fetch`,
|
|
505
|
-
` \`/i18n/${w.id}/<lang>.json\` (the Nx generator adds this glob for you):`,
|
|
506
|
-
'',
|
|
507
|
-
' ```json',
|
|
508
|
-
` { "glob": "**/*.json", "input": "<path to this library>/src/lib/i18n", "output": "i18n/${w.id}" }`,
|
|
509
|
-
' ```',
|
|
510
|
-
'',
|
|
511
|
-
`4. If your application compiles the shell's theme with Tailwind, name this library as a source`,
|
|
512
|
-
` for it, so the utility classes in these templates are emitted. Tailwind also detects sources`,
|
|
513
|
-
` by itself, but that depends on where it resolves the project root and on \`.gitignore\`, and`,
|
|
514
|
-
` what the scaffold names covers the application alone (the Nx generator adds this line for`,
|
|
515
|
-
` you). Applications scaffolded with \`--styles precompiled\` run no Tailwind and need nothing:`,
|
|
516
|
-
'',
|
|
517
|
-
' ```css',
|
|
518
|
-
` @source '<path from that stylesheet to this library>/src';`,
|
|
519
|
-
' ```',
|
|
520
|
-
'',
|
|
521
|
-
...surfaceNotes(w),
|
|
522
|
-
'',
|
|
523
|
-
'## After scaffolding',
|
|
524
|
-
'',
|
|
525
|
-
'- `src/lib/i18n/de.json` starts as a copy of the English strings — translate it.',
|
|
526
|
-
`- A scaffolded command defaults its shortcut to \`mod+shift+<first letter of the id>\` — two weavers whose ids share a first letter collide; pass \`--shortcut\` or edit the command.`,
|
|
527
|
-
'- The project is generated **untagged**: Nx tags belong to your `depConstraints`, and inventing',
|
|
528
|
-
' one would fail a lint policy you never opted this project into. If your workspace enforces',
|
|
529
|
-
' module boundaries, give it tags your constraints allow — `--tags` at generation time, or',
|
|
530
|
-
' `tags` in `project.json` afterwards.',
|
|
531
|
-
'',
|
|
532
|
-
].join('\n');
|
|
533
|
-
}
|
|
534
445
|
exports.angularWeaver = {
|
|
535
446
|
id: 'angular-weaver',
|
|
536
447
|
build(input) {
|
|
@@ -540,7 +451,7 @@ exports.angularWeaver = {
|
|
|
540
451
|
[`src/lib/plugin/${w.id}.plugin.ts`]: pluginFile(w),
|
|
541
452
|
'src/lib/i18n/en.json': (0, weaver_i18n_1.i18nFile)(w),
|
|
542
453
|
'src/lib/i18n/de.json': (0, weaver_i18n_1.i18nFile)(w),
|
|
543
|
-
'README.md': readmeFile(w),
|
|
454
|
+
'README.md': (0, weaver_readme_1.readmeFile)(w),
|
|
544
455
|
};
|
|
545
456
|
if (w.features.container) {
|
|
546
457
|
files[`src/lib/views/${w.id}-canvas-view.ts`] = childViewFile(w, 'canvas', `${w.className}CanvasView`);
|
|
@@ -557,6 +468,9 @@ exports.angularWeaver = {
|
|
|
557
468
|
files[`src/lib/dialogs/${w.id}-about-dialog.html`] =
|
|
558
469
|
aboutDialogTemplateFile(w);
|
|
559
470
|
}
|
|
471
|
+
if (w.features.agent) {
|
|
472
|
+
Object.assign(files, (0, agent_files_1.agentFiles)(w));
|
|
473
|
+
}
|
|
560
474
|
if (w.features.spec) {
|
|
561
475
|
files[`src/lib/plugin/${w.id}.plugin.spec.ts`] = specFile(w);
|
|
562
476
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/recipe.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recipe.js","sourceRoot":"","sources":["../../../../../../../libs/tooling/devkit/src/recipes/angular-weaver/recipe.ts"],"names":[],"mappings":"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"}
|