@mindpal/protocol 0.0.2-alpha

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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,326 @@
1
+ "use strict";
2
+ /**
3
+ * Unified Runtime State Machine.
4
+ *
5
+ * Defines canonical status enums, legal transition tables, and transition
6
+ * functions for Step, Run, and CollabPhase statuses.
7
+ *
8
+ * Shared across API and Worker.
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.AGENT_TERMINAL = exports.AGENT_TRANSITIONS = exports.AGENT_PHASES = exports.COLLAB_TRANSITIONS = exports.COLLAB_TERMINAL = exports.COLLAB_PHASES = exports.RUN_TRANSITIONS = exports.RUN_TERMINAL = exports.RUN_STATUSES = exports.STEP_TRANSITIONS = exports.STEP_STREAMING = exports.STEP_BLOCKING = exports.STEP_TERMINAL = exports.STEP_STATUSES = void 0;
12
+ exports.transitionStep = transitionStep;
13
+ exports.transitionRun = transitionRun;
14
+ exports.transitionCollab = transitionCollab;
15
+ exports.tryTransitionStep = tryTransitionStep;
16
+ exports.tryTransitionRun = tryTransitionRun;
17
+ exports.tryTransitionCollab = tryTransitionCollab;
18
+ exports.normalizeStepStatus = normalizeStepStatus;
19
+ exports.normalizeRunStatus = normalizeRunStatus;
20
+ exports.normalizeCollabPhase = normalizeCollabPhase;
21
+ exports.checkStateInvariant = checkStateInvariant;
22
+ exports.tryTransitionAgent = tryTransitionAgent;
23
+ exports.transitionAgent = transitionAgent;
24
+ exports.isAgentTerminal = isAgentTerminal;
25
+ exports.mapOrchestrationToAgent = mapOrchestrationToAgent;
26
+ exports.mapAgentToOrchestration = mapAgentToOrchestration;
27
+ /* ================================================================== */
28
+ /* Step Status */
29
+ /* ================================================================== */
30
+ exports.STEP_STATUSES = [
31
+ "pending",
32
+ "running",
33
+ "paused", // P1-1.1: 新增暂停状态
34
+ "needs_approval",
35
+ "needs_device",
36
+ "needs_arbiter",
37
+ "streaming", // P0-2: 流式控制中(高频传感器数据 + 实时指令)
38
+ "succeeded",
39
+ "failed",
40
+ "deadletter",
41
+ "canceled",
42
+ ];
43
+ exports.STEP_TERMINAL = new Set(["succeeded", "failed", "deadletter", "canceled"]);
44
+ exports.STEP_BLOCKING = new Set(["needs_approval", "needs_device", "needs_arbiter", "paused"]);
45
+ exports.STEP_STREAMING = new Set(["streaming"]); // P0-2: 流式控制状态
46
+ exports.STEP_TRANSITIONS = {
47
+ pending: new Set(["running", "needs_approval", "needs_device", "needs_arbiter", "streaming", "canceled"]),
48
+ running: new Set(["succeeded", "failed", "canceled", "deadletter", "paused", "streaming"]), // P1-1.1: running 可以转 paused
49
+ paused: new Set(["pending", "canceled", "streaming"]), // P0-2: paused 可以转为 streaming
50
+ needs_approval: new Set(["pending", "canceled", "streaming"]), // P0-2: 审批通过后可以直接进入 streaming
51
+ needs_device: new Set(["pending", "canceled", "streaming"]), // P0-2: 设备就绪后可以进入 streaming
52
+ needs_arbiter: new Set(["pending", "canceled", "streaming"]),
53
+ streaming: new Set(["running", "succeeded", "failed", "canceled", "paused"]), // P0-2: streaming 可以转回 running 或成功/失败
54
+ succeeded: new Set([]),
55
+ failed: new Set(["pending", "deadletter", "canceled"]),
56
+ deadletter: new Set([]),
57
+ canceled: new Set(["pending"]),
58
+ };
59
+ /* ================================================================== */
60
+ /* Run Status */
61
+ /* ================================================================== */
62
+ exports.RUN_STATUSES = [
63
+ "created",
64
+ "queued",
65
+ "running",
66
+ "paused", // P1-1.1: 新增暂停状态
67
+ "needs_approval",
68
+ "needs_device",
69
+ "needs_arbiter",
70
+ "succeeded",
71
+ "failed",
72
+ "canceled",
73
+ "stopped",
74
+ "compensating",
75
+ "compensated",
76
+ ];
77
+ exports.RUN_TERMINAL = new Set(["succeeded", "failed", "canceled", "stopped", "compensated"]);
78
+ exports.RUN_TRANSITIONS = {
79
+ created: new Set(["queued", "running", "paused", "succeeded", "failed", "stopped", "canceled"]),
80
+ queued: new Set(["running", "needs_approval", "needs_device", "needs_arbiter", "canceled", "failed", "paused"]),
81
+ running: new Set(["succeeded", "failed", "needs_approval", "needs_device", "needs_arbiter", "canceled", "stopped", "compensating", "paused"]), // P1-1.1: running 可以转 paused
82
+ paused: new Set(["queued", "canceled", "stopped"]), // P1-1.1: paused 可以恢复到 queued 或取消/停止
83
+ needs_approval: new Set(["queued", "canceled", "failed"]),
84
+ needs_device: new Set(["queued", "canceled", "failed"]),
85
+ needs_arbiter: new Set(["queued", "canceled", "failed"]),
86
+ succeeded: new Set([]),
87
+ failed: new Set(["queued", "compensating"]),
88
+ canceled: new Set([]),
89
+ stopped: new Set([]),
90
+ compensating: new Set(["compensated", "failed"]),
91
+ compensated: new Set([]),
92
+ };
93
+ /* ================================================================== */
94
+ /* CollabPhase */
95
+ /* ================================================================== */
96
+ exports.COLLAB_PHASES = [
97
+ "planning",
98
+ "executing",
99
+ "paused", // P1-1.1: 新增暂停状态
100
+ "needs_approval",
101
+ "needs_device",
102
+ "needs_arbiter",
103
+ "succeeded",
104
+ "failed",
105
+ "stopped",
106
+ ];
107
+ exports.COLLAB_TERMINAL = new Set(["succeeded", "failed", "stopped"]);
108
+ exports.COLLAB_TRANSITIONS = {
109
+ planning: new Set(["executing", "needs_approval", "failed", "stopped", "paused"]), // P1-1.1: planning 可以暂停
110
+ executing: new Set(["needs_approval", "needs_device", "needs_arbiter", "succeeded", "failed", "stopped", "paused"]), // P1-1.1: executing 可以暂停
111
+ paused: new Set(["executing", "planning", "stopped"]), // P1-1.1: paused 可以恢复或停止
112
+ needs_approval: new Set(["executing", "failed", "stopped"]),
113
+ needs_device: new Set(["executing", "failed", "stopped"]),
114
+ needs_arbiter: new Set(["executing", "failed", "stopped"]),
115
+ succeeded: new Set([]),
116
+ failed: new Set([]),
117
+ stopped: new Set([]),
118
+ };
119
+ function createTransitionViolation(entity, from, to) {
120
+ return { entity, from, to, message: `Illegal ${entity} transition: ${from} → ${to}` };
121
+ }
122
+ function transitionStep(from, to) {
123
+ if (from === to)
124
+ return to;
125
+ const allowed = exports.STEP_TRANSITIONS[from];
126
+ if (!allowed || !allowed.has(to))
127
+ throw createTransitionViolation("step", from, to);
128
+ return to;
129
+ }
130
+ function transitionRun(from, to) {
131
+ if (from === to)
132
+ return to;
133
+ const allowed = exports.RUN_TRANSITIONS[from];
134
+ if (!allowed || !allowed.has(to))
135
+ throw createTransitionViolation("run", from, to);
136
+ return to;
137
+ }
138
+ function transitionCollab(from, to) {
139
+ if (from === to)
140
+ return to;
141
+ const allowed = exports.COLLAB_TRANSITIONS[from];
142
+ if (!allowed || !allowed.has(to))
143
+ throw createTransitionViolation("collab", from, to);
144
+ return to;
145
+ }
146
+ function tryTransitionStep(from, to) {
147
+ if (from === to)
148
+ return { ok: true, status: to };
149
+ const allowed = exports.STEP_TRANSITIONS[from];
150
+ if (!allowed || !allowed.has(to))
151
+ return { ok: false, status: from, violation: createTransitionViolation("step", from, to) };
152
+ return { ok: true, status: to };
153
+ }
154
+ function tryTransitionRun(from, to) {
155
+ if (from === to)
156
+ return { ok: true, status: to };
157
+ const allowed = exports.RUN_TRANSITIONS[from];
158
+ if (!allowed || !allowed.has(to))
159
+ return { ok: false, status: from, violation: createTransitionViolation("run", from, to) };
160
+ return { ok: true, status: to };
161
+ }
162
+ function tryTransitionCollab(from, to) {
163
+ if (from === to)
164
+ return { ok: true, status: to };
165
+ const allowed = exports.COLLAB_TRANSITIONS[from];
166
+ if (!allowed || !allowed.has(to))
167
+ return { ok: false, status: from, violation: createTransitionViolation("collab", from, to) };
168
+ return { ok: true, status: to };
169
+ }
170
+ /* ================================================================== */
171
+ /* Normalizer */
172
+ /* ================================================================== */
173
+ const STEP_STATUS_SET = new Set(exports.STEP_STATUSES);
174
+ const RUN_STATUS_SET = new Set(exports.RUN_STATUSES);
175
+ const COLLAB_PHASE_SET = new Set(exports.COLLAB_PHASES);
176
+ function normalizeStepStatus(raw) {
177
+ const s = String(raw ?? "").trim();
178
+ if (s === "created")
179
+ return "pending";
180
+ if (s === "compensating")
181
+ return "running";
182
+ return STEP_STATUS_SET.has(s) ? s : null;
183
+ }
184
+ function normalizeRunStatus(raw) {
185
+ const s = String(raw ?? "").trim();
186
+ return RUN_STATUS_SET.has(s) ? s : null;
187
+ }
188
+ function normalizeCollabPhase(raw) {
189
+ const s = String(raw ?? "").trim();
190
+ if (s === "canceled")
191
+ return "stopped";
192
+ return COLLAB_PHASE_SET.has(s) ? s : null;
193
+ }
194
+ function checkStateInvariant(params) {
195
+ const violations = [];
196
+ const runSt = normalizeRunStatus(params.runStatus);
197
+ if (!runSt) {
198
+ violations.push({ code: "run.invalid_status", severity: "error", message: `Run has unknown status: "${params.runStatus}"`, details: { runStatus: params.runStatus } });
199
+ return violations;
200
+ }
201
+ const stepStatuses = params.steps.map((s) => ({ stepId: s.stepId, status: normalizeStepStatus(s.status), raw: s.status }));
202
+ for (const s of stepStatuses) {
203
+ if (!s.status) {
204
+ violations.push({ code: "step.invalid_status", severity: "error", message: `Step ${s.stepId} has unknown status: "${s.raw}"`, details: { stepId: s.stepId, status: s.raw } });
205
+ }
206
+ }
207
+ const valid = stepStatuses.filter((s) => s.status !== null);
208
+ const allTerminal = valid.length > 0 && valid.every((s) => exports.STEP_TERMINAL.has(s.status));
209
+ const hasRunning = valid.some((s) => s.status === "running");
210
+ const hasPending = valid.some((s) => s.status === "pending");
211
+ const hasFailed = valid.some((s) => s.status === "failed");
212
+ if (exports.RUN_TERMINAL.has(runSt) && (hasRunning || hasPending)) {
213
+ violations.push({ code: "run.terminal_with_active_steps", severity: "error", message: `Run is ${runSt} but has active steps`, details: { runStatus: runSt } });
214
+ }
215
+ if (runSt === "succeeded" && hasFailed) {
216
+ violations.push({ code: "run.succeeded_with_failed_steps", severity: "warn", message: "Run is succeeded but has failed steps", details: { runStatus: runSt } });
217
+ }
218
+ if (allTerminal && !exports.RUN_TERMINAL.has(runSt) && valid.length > 0) {
219
+ violations.push({ code: "run.non_terminal_all_steps_done", severity: "warn", message: `All steps are terminal but run is still ${runSt}`, details: { runStatus: runSt } });
220
+ }
221
+ if (params.collabPhase) {
222
+ const cp = normalizeCollabPhase(params.collabPhase);
223
+ if (!cp) {
224
+ violations.push({ code: "collab.invalid_phase", severity: "error", message: `CollabPhase has unknown value: "${params.collabPhase}"` });
225
+ }
226
+ else if (exports.COLLAB_TERMINAL.has(cp) && !exports.RUN_TERMINAL.has(runSt)) {
227
+ violations.push({ code: "collab.terminal_run_active", severity: "warn", message: `CollabPhase is ${cp} (terminal) but run is ${runSt}` });
228
+ }
229
+ else if (!exports.COLLAB_TERMINAL.has(cp) && exports.RUN_TERMINAL.has(runSt)) {
230
+ violations.push({ code: "collab.active_run_terminal", severity: "warn", message: `CollabPhase is ${cp} (active) but run is ${runSt}` });
231
+ }
232
+ }
233
+ if (params.agentPhase) {
234
+ if (!exports.AGENT_PHASES.includes(params.agentPhase)) {
235
+ violations.push({ code: "agent.invalid_phase", severity: "error", message: `Invalid agent phase: ${params.agentPhase}`, details: { agentPhase: params.agentPhase } });
236
+ }
237
+ else if (isAgentTerminal(params.agentPhase)) {
238
+ const terminalRuns = ["succeeded", "failed", "canceled", "stopped", "compensated"];
239
+ if (!terminalRuns.includes(params.runStatus)) {
240
+ violations.push({ code: "agent.terminal_run_active", severity: "warn", message: `Terminal agent phase ${params.agentPhase} but run is ${params.runStatus}`, details: { agentPhase: params.agentPhase, runStatus: params.runStatus } });
241
+ }
242
+ }
243
+ }
244
+ return violations;
245
+ }
246
+ /* ================================================================== */
247
+ /* Agent 生命周期状态机 */
248
+ /* ================================================================== */
249
+ exports.AGENT_PHASES = [
250
+ "idle", "planning", "thinking", "deciding", "acting",
251
+ "waiting", "blocked", "completed", "failed", "timeout",
252
+ ];
253
+ exports.AGENT_TRANSITIONS = {
254
+ idle: new Set(["planning", "failed"]),
255
+ planning: new Set(["thinking", "failed", "timeout"]),
256
+ thinking: new Set(["deciding", "waiting", "failed", "timeout"]),
257
+ deciding: new Set(["acting", "blocked", "failed", "timeout"]),
258
+ acting: new Set(["thinking", "completed", "failed", "timeout"]),
259
+ waiting: new Set(["thinking", "failed", "timeout"]),
260
+ blocked: new Set(["thinking", "failed", "timeout"]),
261
+ completed: new Set(["idle"]),
262
+ failed: new Set(["idle"]),
263
+ timeout: new Set(["idle"]),
264
+ };
265
+ exports.AGENT_TERMINAL = new Set(["completed", "failed", "timeout"]);
266
+ /** 安全转换 Agent 阶段(返回结果对象,不抛异常) */
267
+ function tryTransitionAgent(from, to) {
268
+ if (from === to)
269
+ return { ok: true, status: to };
270
+ const allowed = exports.AGENT_TRANSITIONS[from];
271
+ if (!allowed || !allowed.has(to)) {
272
+ return { ok: false, status: from, violation: createTransitionViolation("agent", from, to) };
273
+ }
274
+ return { ok: true, status: to };
275
+ }
276
+ /** 硬转换 Agent 阶段(违反时抛异常) */
277
+ function transitionAgent(from, to) {
278
+ if (from === to)
279
+ return to;
280
+ const allowed = exports.AGENT_TRANSITIONS[from];
281
+ if (!allowed || !allowed.has(to))
282
+ throw createTransitionViolation("agent", from, to);
283
+ return to;
284
+ }
285
+ /** 判断是否为 Agent 终态 */
286
+ function isAgentTerminal(phase) {
287
+ return exports.AGENT_TERMINAL.has(phase);
288
+ }
289
+ /* ================================================================== */
290
+ /* OrchestrationPhase ↔ AgentPhase 映射 */
291
+ /* ================================================================== */
292
+ /**
293
+ * 将 OrchestrationPhase 字符串映射到 AgentPhase。
294
+ * 用于桥接旧编排系统与新 Agent 状态机。
295
+ */
296
+ function mapOrchestrationToAgent(phase) {
297
+ const mapping = {
298
+ idle: "idle",
299
+ planning: "planning",
300
+ executing: "acting",
301
+ reviewing: "thinking",
302
+ done: "completed",
303
+ failed: "failed",
304
+ cancelled: "failed",
305
+ };
306
+ return mapping[phase.toLowerCase()] ?? "idle";
307
+ }
308
+ /**
309
+ * 将 AgentPhase 映射回 OrchestrationPhase 字符串。
310
+ */
311
+ function mapAgentToOrchestration(phase) {
312
+ const mapping = {
313
+ idle: "idle",
314
+ planning: "planning",
315
+ thinking: "reviewing",
316
+ deciding: "executing",
317
+ acting: "executing",
318
+ waiting: "executing",
319
+ blocked: "executing",
320
+ completed: "done",
321
+ failed: "failed",
322
+ timeout: "failed",
323
+ };
324
+ return mapping[phase];
325
+ }
326
+ //# sourceMappingURL=state-machine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Tool policy utilities — extracted from collab-message.ts
3
+ * These are general-purpose tool reference matching functions.
4
+ */
5
+ /** Strip version suffix from tool reference: "entity.create@1" → "entity.create" */
6
+ export declare function toolNameFromRef(ref: string): string;
7
+ /**
8
+ * Check whether a tool reference is permitted by the given allowlist.
9
+ * - If allowedTools is null/undefined/empty → all tools allowed (returns true)
10
+ * - Otherwise matches by exact ref OR by base name (without version)
11
+ */
12
+ export declare function isToolAllowedForPolicy(allowedTools: Iterable<string> | null | undefined, toolRef: string): boolean;
13
+ //# sourceMappingURL=toolPolicy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolPolicy.d.ts","sourceRoot":"","sources":["../src/toolPolicy.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAInD;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,IAAI,GAAG,SAAS,EACjD,OAAO,EAAE,MAAM,GACd,OAAO,CAiBT"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ /**
3
+ * Tool policy utilities — extracted from collab-message.ts
4
+ * These are general-purpose tool reference matching functions.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.toolNameFromRef = toolNameFromRef;
8
+ exports.isToolAllowedForPolicy = isToolAllowedForPolicy;
9
+ /** Strip version suffix from tool reference: "entity.create@1" → "entity.create" */
10
+ function toolNameFromRef(ref) {
11
+ if (!ref)
12
+ return "";
13
+ const idx = ref.indexOf("@");
14
+ return idx >= 0 ? ref.slice(0, idx) : ref;
15
+ }
16
+ /**
17
+ * Check whether a tool reference is permitted by the given allowlist.
18
+ * - If allowedTools is null/undefined/empty → all tools allowed (returns true)
19
+ * - Otherwise matches by exact ref OR by base name (without version)
20
+ */
21
+ function isToolAllowedForPolicy(allowedTools, toolRef) {
22
+ if (allowedTools == null)
23
+ return true;
24
+ const arr = allowedTools instanceof Set ? allowedTools : Array.isArray(allowedTools) ? allowedTools : [...allowedTools];
25
+ const size = arr instanceof Set ? arr.size : arr.length;
26
+ if (size === 0)
27
+ return true;
28
+ const set = arr instanceof Set ? arr : new Set(arr);
29
+ if (set.has(toolRef))
30
+ return true;
31
+ const baseName = toolNameFromRef(toolRef);
32
+ if (set.has(baseName))
33
+ return true;
34
+ // Check if any entry in the set matches by base name
35
+ for (const entry of set) {
36
+ if (toolNameFromRef(entry) === baseName)
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+ //# sourceMappingURL=toolPolicy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolPolicy.js","sourceRoot":"","sources":["../src/toolPolicy.ts"],"names":[],"mappings":";AAAA;;;GAGG;;AAGH,0CAIC;AAOD,wDAoBC;AAhCD,oFAAoF;AACpF,SAAgB,eAAe,CAAC,GAAW;IACzC,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,SAAgB,sBAAsB,CACpC,YAAiD,EACjD,OAAe;IAEf,IAAI,YAAY,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IACtC,MAAM,GAAG,GAAG,YAAY,YAAY,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;IACxH,MAAM,IAAI,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAE,GAAgB,CAAC,MAAM,CAAC;IACtE,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,GAAG,GAAG,GAAG,YAAY,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,GAAe,CAAC,CAAC;IAChE,IAAI,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO,IAAI,CAAC;IAElC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC;QAAE,OAAO,IAAI,CAAC;IAEnC,qDAAqD;IACrD,KAAK,MAAM,KAAK,IAAI,GAAG,EAAE,CAAC;QACxB,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,QAAQ;YAAE,OAAO,IAAI,CAAC;IACvD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "@mindpal/protocol",
3
+ "version": "0.0.2-alpha",
4
+ "description": "MindPal Agent OS protocol definitions - standard types, interfaces and utilities for Skill RPC, collaboration messaging, device handshake, and audit systems",
5
+ "license": "MIT",
6
+ "type": "commonjs",
7
+ "private": false,
8
+ "publishConfig": {
9
+ "access": "public"
10
+ },
11
+ "main": "./dist/index.js",
12
+ "types": "./dist/index.d.ts",
13
+ "exports": {
14
+ ".": { "types": "./dist/index.d.ts", "import": "./dist/index.js", "require": "./dist/index.js", "default": "./dist/index.js" },
15
+ "./skill-rpc": { "types": "./dist/skill-rpc.d.ts", "import": "./dist/skill-rpc.js", "require": "./dist/skill-rpc.js", "default": "./dist/skill-rpc.js" },
16
+ "./skill-manifest": { "types": "./dist/skill-manifest.d.ts", "import": "./dist/skill-manifest.js", "require": "./dist/skill-manifest.js", "default": "./dist/skill-manifest.js" },
17
+ "./device-handshake": { "types": "./dist/device-handshake.d.ts", "import": "./dist/device-handshake.js", "require": "./dist/device-handshake.js", "default": "./dist/device-handshake.js" },
18
+ "./audit-event": { "types": "./dist/audit-event.d.ts", "import": "./dist/audit-event.js", "require": "./dist/audit-event.js", "default": "./dist/audit-event.js" },
19
+ "./state-machine": { "types": "./dist/state-machine.d.ts", "import": "./dist/state-machine.js", "require": "./dist/state-machine.js", "default": "./dist/state-machine.js" },
20
+ "./errors": { "types": "./dist/errors.d.ts", "import": "./dist/errors.js", "require": "./dist/errors.js", "default": "./dist/errors.js" }
21
+ },
22
+ "files": ["dist"],
23
+ "scripts": {
24
+ "build": "tsc",
25
+ "clean": "rimraf dist",
26
+ "test": "vitest run"
27
+ },
28
+ "devDependencies": {
29
+ "typescript": "^5.4.0",
30
+ "vitest": "^1.0.0"
31
+ }
32
+ }