@sepveneto/dnde-agent 0.2.0-beta.9 → 0.2.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/README.md +161 -83
- package/dist/{agent-D0iJXvAv.js → agent-B8UEh-Q5.js} +1 -1
- package/dist/agentInstructions.d.ts +12 -1
- package/dist/agentInstructions.d.ts.map +1 -1
- package/dist/agents.d.ts +8 -9
- package/dist/agents.d.ts.map +1 -1
- package/dist/editorDsl.d.ts +25 -0
- package/dist/editorDsl.d.ts.map +1 -0
- package/dist/element.js +12435 -12371
- package/dist/{index-DiCtdOy1.js → index-BxIDwmiL.js} +12602 -12538
- package/dist/index.d.ts +7 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +21 -19
- package/dist/runtime.d.ts +3 -4
- package/dist/runtime.d.ts.map +1 -1
- package/dist/types.d.ts +12 -28
- package/dist/types.d.ts.map +1 -1
- package/package.json +4 -1
- package/dist/editorContext.d.ts +0 -26
- package/dist/editorContext.d.ts.map +0 -1
- package/dist/tool.d.ts +0 -32
- package/dist/tool.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -1,17 +1,20 @@
|
|
|
1
1
|
# `@sepveneto/dnde-agent`
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
`@sepveneto/dnde-agent` 提供 Web Component 外壳和最小 Agent Runtime。运行时本身只有
|
|
4
|
+
一个主 Agent;主 Agent 不持有任何 function tool,只通过 handoff 调度宿主提供的子
|
|
5
|
+
Agent。
|
|
6
|
+
|
|
7
|
+
本包同时公开版本化的编辑器 DSL,以及给宿主子 Agent 使用的 DSL 工具。具体业务角色、
|
|
8
|
+
业务工具和编辑策略均由宿主定义。
|
|
6
9
|
|
|
7
10
|
## 接入
|
|
8
11
|
|
|
9
|
-
|
|
12
|
+
宿主提供模型配置、编辑器 DSL API、子 Agent 和运行上下文:
|
|
10
13
|
|
|
11
14
|
```vue
|
|
12
15
|
<dnd-agent
|
|
13
16
|
:api="agentApi"
|
|
14
|
-
:
|
|
17
|
+
:sub-agents="subAgents"
|
|
15
18
|
:context="getContext"
|
|
16
19
|
></dnd-agent>
|
|
17
20
|
```
|
|
@@ -31,112 +34,187 @@ register({
|
|
|
31
34
|
})
|
|
32
35
|
```
|
|
33
36
|
|
|
37
|
+
编辑器侧通过 `<mpd-editor :agent-sub-agents="subAgents">` 注入子 Agent。
|
|
38
|
+
|
|
39
|
+
## Runtime 边界
|
|
40
|
+
|
|
41
|
+
- 运行时只构造固定主 Agent `Diy Copilot`。
|
|
42
|
+
- 主 Agent 的 `tools` 始终为空,只负责分诊和 handoff。
|
|
43
|
+
- 子 Agent 由宿主定义,或直接注入已经构造好的 Agents SDK `Agent`。
|
|
44
|
+
- 子 Agent 负责实际分析、业务查询和页面编辑。
|
|
45
|
+
- 子 Agent 完成任务后通过 `transfer_back_to_main` 将控制权交还主 Agent。
|
|
46
|
+
- 未提供匹配子 Agent 时,主 Agent 会说明当前能力不足,不会自行读取或修改页面。
|
|
47
|
+
|
|
48
|
+
这种边界可确保业务权限、工具实现和具体编辑策略不进入 Agent Runtime。
|
|
49
|
+
|
|
34
50
|
## 宿主 API
|
|
35
51
|
|
|
52
|
+
编辑器向 Runtime 提供查询、校验和应用 DSL 所需的能力;宿主需要将导出的 DSL 工具
|
|
53
|
+
显式加入具体子 Agent 的 `tools`:
|
|
54
|
+
|
|
36
55
|
```ts
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
56
|
+
import type { AgentHostApi } from '@sepveneto/dnde-agent'
|
|
57
|
+
|
|
58
|
+
const agentApi: AgentHostApi = {
|
|
59
|
+
model: {
|
|
60
|
+
baseURL: 'http://localhost:4000/v1',
|
|
61
|
+
model: 'qwen3.6-plus',
|
|
62
|
+
apiMode: 'responses',
|
|
63
|
+
},
|
|
64
|
+
editor: {
|
|
65
|
+
getCurrentEditor: () => editor.getAgentEditor(),
|
|
66
|
+
getWidgets: () => editor.getCapabilities(),
|
|
67
|
+
validateDsl: dsl => editor.validateDsl(dsl),
|
|
68
|
+
applyDsl: dsl => editor.applyDsl(dsl),
|
|
69
|
+
undo: revision => editor.undo(revision),
|
|
70
|
+
},
|
|
48
71
|
}
|
|
49
72
|
```
|
|
50
73
|
|
|
51
|
-
|
|
52
|
-
|
|
74
|
+
`<mpd-editor>` 会自动注入这组编辑器 API,业务宿主通常只需配置 `model`。
|
|
75
|
+
|
|
76
|
+
## 宿主子 Agent
|
|
77
|
+
|
|
78
|
+
宿主直接使用 OpenAI Agents SDK 创建子 Agent,并将 `Agent[]` 传给编辑器:
|
|
79
|
+
|
|
80
|
+
```ts
|
|
81
|
+
import {
|
|
82
|
+
Agent,
|
|
83
|
+
createEditorDslTools,
|
|
84
|
+
type AgentSubAgent,
|
|
85
|
+
} from '@sepveneto/dnde-agent'
|
|
86
|
+
|
|
87
|
+
const editorTools = createEditorDslTools(agentApi)
|
|
88
|
+
|
|
89
|
+
const pageAgent = new Agent({
|
|
90
|
+
name: 'Page Agent',
|
|
91
|
+
handoffDescription: '处理页面布局、组件编辑和业务数据查询。',
|
|
92
|
+
model: 'qwen3.6-plus',
|
|
93
|
+
instructions: [
|
|
94
|
+
'先调用 get_current_editor 和 get_widgets。',
|
|
95
|
+
'页面修改必须通过 apply_editor_dsl 提交完整、版本化的 DSL。',
|
|
96
|
+
'任务全部完成后调用 transfer_back_to_main 交还控制权。',
|
|
97
|
+
'需要用户补充信息时不要交还,等待用户回复后继续当前任务。',
|
|
98
|
+
].join('\n'),
|
|
99
|
+
tools: [
|
|
100
|
+
...editorTools,
|
|
101
|
+
queryProduct,
|
|
102
|
+
queryCoupon,
|
|
103
|
+
],
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
const subAgents: AgentSubAgent[] = [pageAgent]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
运行时会创建子 Agent 的轻量副本,并追加 `transfer_back_to_main` handoff;模型、工具、
|
|
110
|
+
结构化输出和宿主原有的 `handoffs` 保持不变。子 Agent 完成任务后交还控制权,由主 Agent
|
|
111
|
+
统一回复用户。
|
|
53
112
|
|
|
54
|
-
|
|
113
|
+
只读子 Agent 不添加 `editorTools` 即可,不会自动获得文档修改能力。结构化输出等其它
|
|
114
|
+
SDK 能力直接在创建 Agent 时配置 `outputType`。
|
|
55
115
|
|
|
56
|
-
|
|
57
|
-
附件内容判断工作模式:
|
|
116
|
+
## 编辑器 DSL
|
|
58
117
|
|
|
59
|
-
|
|
60
|
-
- **增量修改**:用户要求在现有页面上新增、编辑、删除或移动局部内容。
|
|
118
|
+
Agent 不提供节点级增删改工具,而是将完整 DSL 作为一个受校验、可批量执行的操作批次:
|
|
61
119
|
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
120
|
+
```ts
|
|
121
|
+
interface EditorDsl {
|
|
122
|
+
dslVersion: '1.1'
|
|
123
|
+
baseRevision: number
|
|
124
|
+
scope: {
|
|
125
|
+
mode: 'style_only' | 'content_only' | 'layout_only' | 'any'
|
|
126
|
+
targets: string[]
|
|
127
|
+
}
|
|
128
|
+
operations: Array<
|
|
129
|
+
| {
|
|
130
|
+
op: 'add'
|
|
131
|
+
key: string
|
|
132
|
+
widget: string
|
|
133
|
+
placement?: {
|
|
134
|
+
afterUuid?: string
|
|
135
|
+
beforeUuid?: string
|
|
136
|
+
afterKey?: string
|
|
137
|
+
beforeKey?: string
|
|
138
|
+
group?: string
|
|
139
|
+
}
|
|
140
|
+
props?: Record<string, unknown>
|
|
141
|
+
style?: Record<string, unknown>
|
|
142
|
+
custom?: DslCustomOperation[]
|
|
143
|
+
}
|
|
144
|
+
| {
|
|
145
|
+
op: 'update'
|
|
146
|
+
uuid: string
|
|
147
|
+
props?: Record<string, unknown>
|
|
148
|
+
style?: Record<string, unknown>
|
|
149
|
+
custom?: DslCustomOperation[]
|
|
150
|
+
}
|
|
151
|
+
| {
|
|
152
|
+
op: 'delete'
|
|
153
|
+
uuid: string
|
|
154
|
+
}
|
|
155
|
+
>
|
|
156
|
+
}
|
|
157
|
+
```
|
|
66
158
|
|
|
67
|
-
|
|
159
|
+
`baseRevision` 必须来自 `get_current_editor`。宿主在应用前校验 revision、组件能力、
|
|
160
|
+
字段作用域;整批操作由编辑器原子执行。
|
|
68
161
|
|
|
69
|
-
|
|
70
|
-
TIFF、HEIC 图片;一次最多 6 个附件、总计不超过 20 MB。例如可以同时上传一份
|
|
71
|
-
装修文档和一张参考图。文档会逐个转换为文本上下文,所有图片会作为多模态内容
|
|
72
|
-
一起发送。图片上传后显示缩略图,Agent 会按以下顺序执行:
|
|
162
|
+
### 公开 DSL 工具
|
|
73
163
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
3. 整页组件和内容计划完成后,再查询业务数据、准备填充内容并调用 `editor_operator`。
|
|
164
|
+
`createEditorDslTools(api)` 是可选导出,不会由 Runtime 自动注册。将返回值展开到某个
|
|
165
|
+
子 Agent 自己的 `tools` 中后,该子 Agent 才会获得以下工具:
|
|
77
166
|
|
|
78
|
-
|
|
167
|
+
| 工具 | 作用 |
|
|
168
|
+
| --- | --- |
|
|
169
|
+
| `get_current_editor` | 读取文档、选中节点和 revision |
|
|
170
|
+
| `get_widgets` | 读取组件能力目录 |
|
|
171
|
+
| `validate_editor_dsl` | 校验 DSL,不修改文档 |
|
|
172
|
+
| `apply_editor_dsl` | 校验后一次性应用 DSL |
|
|
173
|
+
| `undo_editor_dsl` | 按 revision 撤销最近一次 DSL 操作 |
|
|
79
174
|
|
|
80
|
-
|
|
81
|
-
`
|
|
82
|
-
图片引用而不是 Base64,避免撑满浏览器 `localStorage`。例如把 `qwen3.6-plus`
|
|
83
|
-
作为模型时,可以直接使用“参考这张图的布局设计首页”这类指令。包含图片的
|
|
84
|
-
Qwen 对话会使用官方文档中的 Chat Completions 兼容格式;纯文本对话继续遵循
|
|
85
|
-
宿主配置的 API 模式。
|
|
175
|
+
也可以通过 `CreateEditorDslToolsOptions` 只注册需要的工具。不需要编辑器能力时,
|
|
176
|
+
直接省略 `createEditorDslTools(api)`。
|
|
86
177
|
|
|
87
|
-
|
|
88
|
-
|
|
178
|
+
所有 DSL 类型,包括 `EditorDsl`、`DslOperation`、`DslValidationResult`,均从
|
|
179
|
+
`@sepveneto/dnde-agent` 导出。
|
|
89
180
|
|
|
90
|
-
|
|
181
|
+
## 业务工具
|
|
91
182
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
时自动注入,并在操作成功后一次性消费:
|
|
183
|
+
业务工具属于宿主,由宿主挂到具体子 Agent 上。工具可以把需要跨工具共享的数据写入
|
|
184
|
+
当前 Run 的 Context:
|
|
95
185
|
|
|
96
186
|
```ts
|
|
97
|
-
|
|
187
|
+
import { tool } from '@sepveneto/dnde-agent'
|
|
188
|
+
|
|
189
|
+
const queryProduct = tool({
|
|
98
190
|
name: 'query_product',
|
|
99
191
|
description: '查询商品并准备添加到编辑器。',
|
|
100
|
-
parameters:
|
|
101
|
-
|
|
192
|
+
parameters: {
|
|
193
|
+
type: 'object',
|
|
194
|
+
properties: {
|
|
195
|
+
keyword: { type: 'string' },
|
|
196
|
+
},
|
|
197
|
+
required: ['keyword'],
|
|
198
|
+
additionalProperties: false,
|
|
199
|
+
},
|
|
200
|
+
strict: false,
|
|
201
|
+
async execute(input, runContext) {
|
|
202
|
+
const { keyword } = input as { keyword: string }
|
|
102
203
|
const product = await api.product.search(keyword)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
// 只返回模型需要做决策的轻量信息。
|
|
106
|
-
toolContext.context.pendingItems = items
|
|
204
|
+
runContext.context.product = product
|
|
107
205
|
return { id: product.id, name: product.name }
|
|
108
206
|
},
|
|
109
207
|
})
|
|
110
208
|
```
|
|
111
209
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
工具参数不包含 `items`;即使模型额外传入也会被移除。每次 Agent Run 都会
|
|
115
|
-
创建独立的 Context,失败时保留待添加数据以支持同一轮重试,成功后清空。
|
|
116
|
-
同一轮模型回复中的 function tools 会按调用顺序串行执行,保证前序工具写入的
|
|
117
|
-
Context 在后续工具(例如 `editor_operator`)执行时已经可见。
|
|
118
|
-
|
|
119
|
-
## 业务工具
|
|
120
|
-
|
|
121
|
-
```ts
|
|
122
|
-
import { defineAgentTool } from '@sepveneto/dnde-agent'
|
|
123
|
-
import { z } from 'zod'
|
|
124
|
-
|
|
125
|
-
const queryOrder = defineAgentTool({
|
|
126
|
-
name: 'query_order',
|
|
127
|
-
description: '查询订单状态',
|
|
128
|
-
parameters: z.object({ id: z.string() }),
|
|
129
|
-
async execute({ id }, context) {
|
|
130
|
-
return fetch(`/api/orders/${id}`).then(response => response.json())
|
|
131
|
-
},
|
|
132
|
-
})
|
|
133
|
-
```
|
|
210
|
+
宿主初始 Context 会复制到当前 Run。模型请求走宿主代理或 BFF,浏览器侧不保存真实
|
|
211
|
+
密钥。
|
|
134
212
|
|
|
135
|
-
|
|
136
|
-
模型请求走兼容 OpenAI 的宿主代理/BFF,浏览器侧不保存真实密钥。
|
|
213
|
+
## 附件与会话
|
|
137
214
|
|
|
138
|
-
|
|
215
|
+
输入框支持多选附件,包括 `.docx`、JPG、PNG、WebP、BMP、TIFF 和 HEIC;一次最多
|
|
216
|
+
6 个附件、总计不超过 20 MB。文档会转换为文本上下文,图片以千问 OpenAI 兼容的多模态
|
|
217
|
+
格式发送。会话历史保存图片引用而不是 Base64。
|
|
139
218
|
|
|
140
|
-
UI
|
|
141
|
-
|
|
142
|
-
全部位于 `dnd-agent` 的 Shadow DOM 内。
|
|
219
|
+
聊天 UI、流式输出、reasoning、工具调用、停止生成和历史记录全部位于
|
|
220
|
+
`<dnd-agent>` 的 Shadow DOM 内。
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var V = Object.defineProperty;
|
|
2
2
|
var Q = (t, s, e) => s in t ? V(t, s, { enumerable: !0, configurable: !0, writable: !0, value: e }) : t[s] = e;
|
|
3
3
|
var a = (t, s, e) => Q(t, typeof s != "symbol" ? s + "" : s, e);
|
|
4
|
-
import { C as E, U as x, r as X, t as I, o as v, s as y, a as Z, w as A, i as q, e as ee, A as te, n as k, b as R, p as C, c as se, S as ie, d as ne, M as re, f as ae } from "./index-
|
|
4
|
+
import { C as E, U as x, r as X, t as I, o as v, s as y, a as Z, w as A, i as q, e as ee, A as te, n as k, b as R, p as C, c as se, S as ie, d as ne, M as re, f as ae } from "./index-BxIDwmiL.js";
|
|
5
5
|
function oe(t) {
|
|
6
6
|
return t ? !(typeof t == "object" && t && "constructor" in t && typeof t.constructor == "function" ? t.constructor.name : "").includes("ChatCompletions") : !0;
|
|
7
7
|
}
|
|
@@ -1,2 +1,13 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const MAIN_AGENT_NAME = "Diy Copilot";
|
|
2
|
+
export interface MainAgentInfo {
|
|
3
|
+
name: string;
|
|
4
|
+
description: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The main agent is a dispatcher only. It owns no function tools and cannot
|
|
8
|
+
* inspect or mutate the editor directly.
|
|
9
|
+
*/
|
|
10
|
+
export declare function buildMainAgentInstructions(options?: {
|
|
11
|
+
subAgents?: MainAgentInfo[];
|
|
12
|
+
}): string;
|
|
2
13
|
//# sourceMappingURL=agentInstructions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agentInstructions.d.ts","sourceRoot":"","sources":["../src/agentInstructions.ts"],"names":[],"mappings":"AAAA,wBAAgB,
|
|
1
|
+
{"version":3,"file":"agentInstructions.d.ts","sourceRoot":"","sources":["../src/agentInstructions.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,gBAAgB,CAAA;AAE5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,MAAM,CAAA;CACpB;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,GAAE;IACP,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;CACvB,UAuBP"}
|
package/dist/agents.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
import type { AgentToolDefinition } from './tool';
|
|
2
|
-
import type { AgentHostApi } from './types';
|
|
3
1
|
import { Agent } from '@openai/agents';
|
|
4
2
|
export declare const DEFAULT_AGENT_MODEL = "qwen3.6-flash";
|
|
5
3
|
export declare const DEFAULT_AGENT_BFF_URL = "http://localhost:4000/v1";
|
|
4
|
+
/** A host-created OpenAI Agents SDK Agent. */
|
|
5
|
+
export type AgentSubAgent = Agent<any, any>;
|
|
6
6
|
export interface CreateAgentsOptions {
|
|
7
7
|
model?: string;
|
|
8
|
-
|
|
9
|
-
tools?: AgentToolDefinition[];
|
|
10
|
-
getContext?: () => Record<string, unknown>;
|
|
8
|
+
subAgents?: AgentSubAgent[];
|
|
11
9
|
}
|
|
12
10
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
11
|
+
* Build the runtime topology. The main agent is always a dispatcher with no
|
|
12
|
+
* function tools; only host-provided sub-agents can perform work.
|
|
15
13
|
*/
|
|
16
14
|
export declare function createAgents(options: CreateAgentsOptions): {
|
|
17
|
-
agent: Agent<
|
|
18
|
-
|
|
15
|
+
agent: Agent<unknown, "text">;
|
|
16
|
+
subAgents: Agent<any, any>[];
|
|
17
|
+
agents: (Agent<any, any> | Agent<unknown, "text">)[];
|
|
19
18
|
};
|
|
20
19
|
//# sourceMappingURL=agents.d.ts.map
|
package/dist/agents.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAW,MAAM,gBAAgB,CAAA;AAG/C,eAAO,MAAM,mBAAmB,kBAAkB,CAAA;AAClD,eAAO,MAAM,qBAAqB,6BAA6B,CAAA;AAG/D,8CAA8C;AAC9C,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,aAAa,EAAE,CAAA;CAC5B;AAmBD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,mBAAmB;;;;EAyCxD"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { FunctionTool } from '@openai/agents';
|
|
2
|
+
import type { AgentHostApi } from './types';
|
|
3
|
+
export declare const GET_CURRENT_EDITOR_TOOL_NAME = "get_current_editor";
|
|
4
|
+
export declare const GET_WIDGETS_TOOL_NAME = "get_widgets";
|
|
5
|
+
export declare const VALIDATE_EDITOR_DSL_TOOL_NAME = "validate_editor_dsl";
|
|
6
|
+
export declare const APPLY_EDITOR_DSL_TOOL_NAME = "apply_editor_dsl";
|
|
7
|
+
export declare const UNDO_EDITOR_DSL_TOOL_NAME = "undo_editor_dsl";
|
|
8
|
+
export interface CreateEditorDslToolsOptions {
|
|
9
|
+
/** Include the current editor snapshot query. Defaults to true. */
|
|
10
|
+
currentEditor?: boolean;
|
|
11
|
+
/** Include the widget capability catalog query. Defaults to true. */
|
|
12
|
+
widgets?: boolean;
|
|
13
|
+
/** Include deterministic DSL validation. Defaults to true. */
|
|
14
|
+
validate?: boolean;
|
|
15
|
+
/** Include revision-bound undo. Defaults to true. */
|
|
16
|
+
undo?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Build the complete model-facing editor contract. These tools are intended
|
|
20
|
+
* for host-owned sub-agents; the main dispatcher never receives them.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createEditorDslTools(api: AgentHostApi, options?: CreateEditorDslToolsOptions): FunctionTool<any, any, any>[];
|
|
23
|
+
/** Convenience alias for hosts that refer to this contract as editor tools. */
|
|
24
|
+
export declare const createEditorTools: typeof createEditorDslTools;
|
|
25
|
+
//# sourceMappingURL=editorDsl.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"editorDsl.d.ts","sourceRoot":"","sources":["../src/editorDsl.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,gBAAgB,CAAA;AAC9D,OAAO,KAAK,EAEV,YAAY,EAEb,MAAM,SAAS,CAAA;AAGhB,eAAO,MAAM,4BAA4B,uBAAuB,CAAA;AAChE,eAAO,MAAM,qBAAqB,gBAAgB,CAAA;AAClD,eAAO,MAAM,6BAA6B,wBAAwB,CAAA;AAClE,eAAO,MAAM,0BAA0B,qBAAqB,CAAA;AAC5D,eAAO,MAAM,yBAAyB,oBAAoB,CAAA;AAqH1D,MAAM,WAAW,2BAA2B;IAC1C,mEAAmE;IACnE,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,qEAAqE;IACrE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,qDAAqD;IACrD,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAwCD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,YAAY,EACjB,OAAO,GAAE,2BAAgC,GACxC,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,CAgG/B;AAED,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,6BAAuB,CAAA"}
|