@artflo-ai/artflo-openclaw-plugin 0.0.1 → 0.0.2

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,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:34:05.735Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a",
6
+ "payload": {
7
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:34:30.226Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2b637466-6c6f-6172-470c-151459021b0a",
6
+ "payload": {
7
+ "canvasId": "2b637466-6c6f-6172-470c-151459021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:34:30.229Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2d637466-6c6f-6172-410c-15145f021b0a",
6
+ "payload": {
7
+ "canvasId": "2d637466-6c6f-6172-410c-15145f021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:34:35.737Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a",
6
+ "payload": {
7
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:35:00.227Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2b637466-6c6f-6172-470c-151459021b0a",
6
+ "payload": {
7
+ "canvasId": "2b637466-6c6f-6172-470c-151459021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:35:00.230Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2d637466-6c6f-6172-410c-15145f021b0a",
6
+ "payload": {
7
+ "canvasId": "2d637466-6c6f-6172-410c-15145f021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:35:05.737Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a",
6
+ "payload": {
7
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:35:30.227Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2b637466-6c6f-6172-470c-151459021b0a",
6
+ "payload": {
7
+ "canvasId": "2b637466-6c6f-6172-470c-151459021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:35:30.231Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2d637466-6c6f-6172-410c-15145f021b0a",
6
+ "payload": {
7
+ "canvasId": "2d637466-6c6f-6172-410c-15145f021b0a"
8
+ }
9
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "createdAt": "2026-03-27T12:35:35.738Z",
3
+ "direction": "lifecycle",
4
+ "event": "heartbeat:ping",
5
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a",
6
+ "payload": {
7
+ "canvasId": "2c637466-6c6f-6172-400c-15145e021b0a"
8
+ }
9
+ }
@@ -23,10 +23,7 @@ import { ExecutionTraceWriter } from '../core/executor/execution-trace.js';
23
23
  import { parsePlanV2, validateAndFixPlan } from '../core/plan/validate-plan.js';
24
24
  import { writeToolTrace } from './tool-trace.js';
25
25
  export function registerArtfloTools(api, context) {
26
- const registerOptionalTool = (tool) => {
27
- api.registerTool(tool, { optional: true });
28
- };
29
- registerOptionalTool({
26
+ api.registerTool({
30
27
  name: ARTFLO_TOOL_NAMES.getNode,
31
28
  label: 'Artflo Canvas Get Node',
32
29
  description: 'Read one node or edge from the current Artflo canvas session by id.',
@@ -51,7 +48,7 @@ export function registerArtfloTools(api, context) {
51
48
  });
52
49
  },
53
50
  });
54
- registerOptionalTool({
51
+ api.registerTool({
55
52
  name: ARTFLO_TOOL_NAMES.connect,
56
53
  label: 'Artflo Canvas Connect',
57
54
  description: 'Register or warm a direct Artflo canvas WebSocket session for a canvas id using preconfigured plugin credentials.',
@@ -78,7 +75,7 @@ export function registerArtfloTools(api, context) {
78
75
  });
79
76
  },
80
77
  });
81
- registerOptionalTool({
78
+ api.registerTool({
82
79
  name: ARTFLO_TOOL_NAMES.connectionStatus,
83
80
  label: 'Artflo Canvas Connection Status',
84
81
  description: 'Inspect current plugin-level Artflo WebSocket session state and config readiness.',
@@ -106,7 +103,7 @@ export function registerArtfloTools(api, context) {
106
103
  });
107
104
  },
108
105
  });
109
- registerOptionalTool({
106
+ api.registerTool({
110
107
  name: ARTFLO_TOOL_NAMES.getState,
111
108
  label: 'Artflo Canvas State',
112
109
  description: 'Return scaffold plugin state and planned runtime capabilities for Artflo execution.',
@@ -142,7 +139,7 @@ export function registerArtfloTools(api, context) {
142
139
  });
143
140
  },
144
141
  });
145
- registerOptionalTool({
142
+ api.registerTool({
146
143
  name: ARTFLO_TOOL_NAMES.getConfig,
147
144
  label: 'Artflo Canvas Get Config',
148
145
  description: 'Return available models, subscription status, and prompt refine categories for the connected canvas. Call this before planning a workflow so you know which models and resolutions are available.',
@@ -178,7 +175,7 @@ export function registerArtfloTools(api, context) {
178
175
  });
179
176
  },
180
177
  });
181
- registerOptionalTool({
178
+ api.registerTool({
182
179
  name: ARTFLO_TOOL_NAMES.findNodes,
183
180
  label: 'Artflo Canvas Find Nodes',
184
181
  description: 'Find nodes or edges in the connected Artflo canvas by ids, type, status, label text, or runnable state.',
@@ -236,7 +233,7 @@ export function registerArtfloTools(api, context) {
236
233
  });
237
234
  },
238
235
  });
239
- registerOptionalTool({
236
+ api.registerTool({
240
237
  name: ARTFLO_TOOL_NAMES.changeElements,
241
238
  label: 'Artflo Canvas Change Elements',
242
239
  description: 'Apply direct structured element changes to an existing Artflo canvas session.',
@@ -263,7 +260,7 @@ export function registerArtfloTools(api, context) {
263
260
  });
264
261
  },
265
262
  });
266
- registerOptionalTool({
263
+ api.registerTool({
267
264
  name: ARTFLO_TOOL_NAMES.deleteElements,
268
265
  label: 'Artflo Canvas Delete Elements',
269
266
  description: 'Delete nodes or edges from the current Artflo canvas session.',
@@ -288,7 +285,7 @@ export function registerArtfloTools(api, context) {
288
285
  });
289
286
  },
290
287
  });
291
- registerOptionalTool({
288
+ api.registerTool({
292
289
  name: ARTFLO_TOOL_NAMES.runNodes,
293
290
  label: 'Artflo Canvas Run Nodes',
294
291
  description: 'Run one or more executable Artflo nodes by id.',
@@ -313,7 +310,7 @@ export function registerArtfloTools(api, context) {
313
310
  });
314
311
  },
315
312
  });
316
- registerOptionalTool({
313
+ api.registerTool({
317
314
  name: ARTFLO_TOOL_NAMES.waitForCompletion,
318
315
  label: 'Artflo Canvas Wait For Completion',
319
316
  description: 'Wait for one or more executable nodes to reach completion status.',
@@ -340,7 +337,7 @@ export function registerArtfloTools(api, context) {
340
337
  });
341
338
  },
342
339
  });
343
- registerOptionalTool({
340
+ api.registerTool({
344
341
  name: ARTFLO_TOOL_NAMES.executePlan,
345
342
  label: 'Artflo Execute Plan',
346
343
  description: 'Execute a structured Artflo plan through deterministic runtime logic. In scaffold phase, validates request shape and returns the next integration milestone.',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artflo-ai/artflo-openclaw-plugin",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "type": "module",
5
5
  "description": "OpenClaw plugin that connects directly to Artflo canvas WebSocket runtime.",
6
6
  "keywords": [