@insta-dev01/insta-plugin-openclaw 1.0.1 → 1.0.4

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.
Files changed (41) hide show
  1. package/dist/index.d.ts.map +1 -1
  2. package/dist/index.js +37 -16
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/channel/dispatcher.d.ts.map +1 -1
  5. package/dist/src/channel/dispatcher.js +20 -0
  6. package/dist/src/channel/dispatcher.js.map +1 -1
  7. package/dist/src/channel/registration-store.d.ts.map +1 -1
  8. package/dist/src/channel/registration-store.js +7 -0
  9. package/dist/src/channel/registration-store.js.map +1 -1
  10. package/dist/src/core/register-identity.d.ts.map +1 -1
  11. package/dist/src/core/register-identity.js +26 -1
  12. package/dist/src/core/register-identity.js.map +1 -1
  13. package/dist/src/core/task-api.d.ts.map +1 -1
  14. package/dist/src/core/task-api.js +32 -3
  15. package/dist/src/core/task-api.js.map +1 -1
  16. package/dist/src/tools/get-plugin-profile.d.ts.map +1 -1
  17. package/dist/src/tools/get-plugin-profile.js +11 -9
  18. package/dist/src/tools/get-plugin-profile.js.map +1 -1
  19. package/dist/src/tools/grab-task.d.ts.map +1 -1
  20. package/dist/src/tools/grab-task.js +16 -15
  21. package/dist/src/tools/grab-task.js.map +1 -1
  22. package/dist/src/tools/list-tasks.d.ts.map +1 -1
  23. package/dist/src/tools/list-tasks.js +13 -15
  24. package/dist/src/tools/list-tasks.js.map +1 -1
  25. package/dist/src/tools/propose-registration.d.ts.map +1 -1
  26. package/dist/src/tools/propose-registration.js +23 -38
  27. package/dist/src/tools/propose-registration.js.map +1 -1
  28. package/dist/src/tools/register-identity.d.ts.map +1 -1
  29. package/dist/src/tools/register-identity.js +24 -38
  30. package/dist/src/tools/register-identity.js.map +1 -1
  31. package/dist/src/tools/submit-deliverable.d.ts.map +1 -1
  32. package/dist/src/tools/submit-deliverable.js +47 -37
  33. package/dist/src/tools/submit-deliverable.js.map +1 -1
  34. package/dist/src/tools/upload-artifact.d.ts.map +1 -1
  35. package/dist/src/tools/upload-artifact.js +25 -24
  36. package/dist/src/tools/upload-artifact.js.map +1 -1
  37. package/dist/src/utils/profile.d.ts.map +1 -1
  38. package/dist/src/utils/profile.js +20 -2
  39. package/dist/src/utils/profile.js.map +1 -1
  40. package/openclaw.plugin.json +15 -4
  41. package/package.json +6 -3
@@ -3,34 +3,30 @@ import { readdir, stat, readFile } from "node:fs/promises";
3
3
  import { basename, join } from "node:path";
4
4
  import { tmpdir } from "node:os";
5
5
  import { randomBytes } from "node:crypto";
6
- import archiver from "archiver";
6
+ import { ZipArchive } from "archiver";
7
+ import { Type } from "typebox";
7
8
  import { taskApiPostMultipart } from "../core/task-api.js";
9
+ import { DebugLogger } from "../channel/logger.js";
10
+ import { DEBUG_ENABLED } from "../channel/config.js";
11
+ const log = new DebugLogger(DEBUG_ENABLED, "[InstaPlugin:tool:submit_deliverable]");
8
12
  // ──────────────────────────────────────────────────────────────────────────────
9
13
  // 工具参数 JSON Schema
10
14
  // ──────────────────────────────────────────────────────────────────────────────
11
- const SUBMIT_DELIVERABLE_PARAMS = {
12
- type: "object",
13
- properties: {
14
- task_id: {
15
- type: "string",
16
- description: "已认领任务的 UUID(通过 insta_grab_task 抢单成功后获得)",
17
- },
18
- artifact_path: {
19
- type: "string",
20
- description: "产物路径(绝对路径)。" +
21
- "若为目录,将自动递归打包成 ZIP 后提交;" +
22
- "若为文件(含 .zip),直接上传,无需额外打包。",
23
- },
24
- result_description: {
25
- type: "string",
26
- description: "任务执行结果描述/报告(必填文字说明)。" +
27
- "请用简洁语言描述本次任务的执行结论、关键产出和注意事项," +
28
- "此文本将与产物文件一并提交给任务发布方。",
29
- },
30
- },
31
- required: ["task_id", "artifact_path", "result_description"],
32
- additionalProperties: false,
33
- };
15
+ const SUBMIT_DELIVERABLE_PARAMS = Type.Object({
16
+ task_id: Type.String({
17
+ description: "已认领任务的 UUID(通过 insta_grab_task 抢单成功后获得)",
18
+ }),
19
+ artifact_path: Type.String({
20
+ description: "产物路径(绝对路径)。" +
21
+ "若为目录,将自动递归打包成 ZIP 后提交;" +
22
+ "若为文件(含 .zip),直接上传,无需额外打包。",
23
+ }),
24
+ result_description: Type.String({
25
+ description: "任务执行结果描述/报告(必填文字说明)。" +
26
+ "请用简洁语言描述本次任务的执行结论、关键产出和注意事项," +
27
+ "此文本将与产物文件一并提交给任务发布方。",
28
+ }),
29
+ });
34
30
  // ──────────────────────────────────────────────────────────────────────────────
35
31
  // 内部工具:将目录打包为 ZIP(写入临时文件)
36
32
  // ──────────────────────────────────────────────────────────────────────────────
@@ -46,7 +42,7 @@ async function packDirectoryToZip(dirPath) {
46
42
  const zipPath = join(tmpdir(), zipName);
47
43
  await new Promise((resolve, reject) => {
48
44
  const output = createWriteStream(zipPath);
49
- const archive = archiver("zip", { zlib: { level: 6 } });
45
+ const archive = new ZipArchive({ zlib: { level: 6 } });
50
46
  output.on("close", resolve);
51
47
  archive.on("error", reject);
52
48
  archive.pipe(output);
@@ -102,8 +98,16 @@ export const submitDeliverableToolFactory = (ctx) => {
102
98
  const resultDescription = typeof p["result_description"] === "string"
103
99
  ? p["result_description"].trim()
104
100
  : "";
105
- // ── Step 1: 参数校验 ─────────────────────────────────────────────────
101
+ const baseDir = ctx.agentDir ?? ctx.workspaceDir ?? process.cwd();
102
+ log.info("execute ENTER", {
103
+ toolCallId: _toolCallId,
104
+ task_id: taskId,
105
+ artifact_path: artifactPath,
106
+ description_length: resultDescription.length,
107
+ baseDir,
108
+ });
106
109
  if (!taskId) {
110
+ log.warn("execute missing task_id");
107
111
  const err = { ok: false, error: "缺少必填参数:task_id(任务 UUID)" };
108
112
  return {
109
113
  content: [{ type: "text", text: JSON.stringify(err) }],
@@ -111,6 +115,7 @@ export const submitDeliverableToolFactory = (ctx) => {
111
115
  };
112
116
  }
113
117
  if (!artifactPath) {
118
+ log.warn("execute missing artifact_path");
114
119
  const err = { ok: false, error: "缺少必填参数:artifact_path(产物路径)" };
115
120
  return {
116
121
  content: [{ type: "text", text: JSON.stringify(err) }],
@@ -118,6 +123,7 @@ export const submitDeliverableToolFactory = (ctx) => {
118
123
  };
119
124
  }
120
125
  if (!resultDescription) {
126
+ log.warn("execute missing result_description");
121
127
  const err = {
122
128
  ok: false,
123
129
  error: "缺少必填参数:result_description(任务执行结果描述)",
@@ -128,46 +134,49 @@ export const submitDeliverableToolFactory = (ctx) => {
128
134
  };
129
135
  }
130
136
  if (!existsSync(artifactPath)) {
137
+ log.warn("execute artifact path not found", { artifactPath });
131
138
  const err = { ok: false, error: `产物路径不存在:${artifactPath}` };
132
139
  return {
133
140
  content: [{ type: "text", text: JSON.stringify(err) }],
134
141
  details: err,
135
142
  };
136
143
  }
137
- // ── Step 2: 判断路径类型,必要时打包 ZIP ─────────────────────────────
138
144
  const pathStat = await stat(artifactPath);
139
145
  let uploadFilePath;
140
146
  let packed = false;
141
147
  if (pathStat.isDirectory()) {
142
- // 目录 → 先检查是否为空目录
143
148
  const entries = await readdir(artifactPath);
149
+ log.info("execute artifact is directory", { artifactPath, entry_count: entries.length });
144
150
  if (entries.length === 0) {
151
+ log.warn("execute empty directory", { artifactPath });
145
152
  const err = { ok: false, error: `产物目录为空,无法提交:${artifactPath}` };
146
153
  return {
147
154
  content: [{ type: "text", text: JSON.stringify(err) }],
148
155
  details: err,
149
156
  };
150
157
  }
151
- // 打包成 zip
158
+ log.info("execute packing directory to zip", { artifactPath });
152
159
  tempZipPath = await packDirectoryToZip(artifactPath);
153
160
  uploadFilePath = tempZipPath;
154
161
  packed = true;
162
+ log.info("execute zip created", { tempZipPath });
155
163
  }
156
164
  else {
157
- // 普通文件 直接上传
165
+ log.info("execute artifact is file", { artifactPath, size: pathStat.size });
158
166
  uploadFilePath = artifactPath;
159
167
  }
160
- // ── Step 3: 读取文件,构造 multipart/form-data ────────────────────────
161
168
  const fileBuffer = await readFile(uploadFilePath);
162
169
  const filename = basename(uploadFilePath);
170
+ log.info("execute file read", { filename, bytes: fileBuffer.length, packed });
163
171
  const blob = new Blob([fileBuffer], { type: "application/zip" });
164
172
  const formData = new FormData();
165
173
  formData.append("result_description", resultDescription);
166
174
  formData.append("zip_file", blob, filename);
167
- // ── Step 4: 调用交付物上传接口 ────────────────────────────────────────
168
- const baseDir = ctx.agentDir ?? ctx.workspaceDir ?? process.cwd();
175
+ log.info("execute POST deliverable →", { task_id: taskId, filename });
169
176
  const resp = await taskApiPostMultipart(baseDir, `/bots/tasks/${taskId}/deliverable`, formData);
177
+ log.info("execute POST deliverable ←", { code: resp.code, message: resp.message });
170
178
  if (resp.code !== 0) {
179
+ log.warn("execute business error", { code: resp.code, message: resp.message });
171
180
  const err = {
172
181
  ok: false,
173
182
  code: resp.code,
@@ -178,7 +187,6 @@ export const submitDeliverableToolFactory = (ctx) => {
178
187
  details: err,
179
188
  };
180
189
  }
181
- // ── Step 5: 返回成功结果 ──────────────────────────────────────────────
182
190
  const result = {
183
191
  ok: true,
184
192
  task_id: taskId,
@@ -187,6 +195,7 @@ export const submitDeliverableToolFactory = (ctx) => {
187
195
  data: resp.data ?? {},
188
196
  message: "产物提交成功,任务状态已自动流转为「已完成」",
189
197
  };
198
+ log.info("execute DONE", { task_id: taskId, filename });
190
199
  return {
191
200
  content: [{ type: "text", text: JSON.stringify(result, null, 2) }],
192
201
  details: result,
@@ -194,6 +203,7 @@ export const submitDeliverableToolFactory = (ctx) => {
194
203
  }
195
204
  catch (e) {
196
205
  const message = e instanceof Error ? e.message : "提交产物过程中发生未知错误";
206
+ log.error("execute exception", e instanceof Error ? e : undefined);
197
207
  const err = { ok: false, error: message };
198
208
  return {
199
209
  content: [{ type: "text", text: message }],
@@ -201,12 +211,12 @@ export const submitDeliverableToolFactory = (ctx) => {
201
211
  };
202
212
  }
203
213
  finally {
204
- // ── 清理临时 ZIP 文件 ─────────────────────────────────────────────────
205
214
  if (tempZipPath) {
206
215
  const { unlink } = await import("node:fs/promises");
207
- await unlink(tempZipPath).catch(() => {
208
- // 清理失败不影响主流程,静默处理
216
+ await unlink(tempZipPath).catch((e) => {
217
+ log.warn("execute failed to cleanup temp zip", { tempZipPath, error: e.message });
209
218
  });
219
+ log.debug("execute temp zip cleaned up", { tempZipPath });
210
220
  }
211
221
  }
212
222
  },
@@ -1 +1 @@
1
- {"version":3,"file":"submit-deliverable.js","sourceRoot":"","sources":["../../../src/tools/submit-deliverable.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"submit-deliverable.js","sourceRoot":"","sources":["../../../src/tools/submit-deliverable.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"upload-artifact.d.ts","sourceRoot":"","sources":["../../../src/tools/upload-artifact.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AAgF1C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAE,yBA4HvC,CAAC"}
1
+ {"version":3,"file":"upload-artifact.d.ts","sourceRoot":"","sources":["../../../src/tools/upload-artifact.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAEV,yBAAyB,EAC1B,MAAM,kCAAkC,CAAC;AA6E1C;;;;;;;;;;GAUG;AACH,eAAO,MAAM,yBAAyB,EAAE,yBAoIvC,CAAC"}
@@ -1,8 +1,12 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { readFile } from "node:fs/promises";
3
3
  import { basename } from "node:path";
4
+ import { Type } from "typebox";
4
5
  import { getInstaUrl } from "../core/urls.js";
5
6
  import { readProfile } from "../utils/profile.js";
7
+ import { DebugLogger } from "../channel/logger.js";
8
+ import { DEBUG_ENABLED } from "../channel/config.js";
9
+ const log = new DebugLogger(DEBUG_ENABLED, "[InstaPlugin:tool:upload_artifact]");
6
10
  /**
7
11
  * 将服务端原始响应解析为强类型结构。
8
12
  * 若必填字段缺失则返回 null,由调用方透传原始数据。
@@ -23,23 +27,14 @@ function parseUploadAndBindResponse(raw) {
23
27
  // ──────────────────────────────────────────────────────────────────────────────
24
28
  // 工具参数 JSON Schema
25
29
  // ──────────────────────────────────────────────────────────────────────────────
26
- const UPLOAD_PARAMS = {
27
- type: "object",
28
- properties: {
29
- filePath: {
30
- type: "string",
31
- description: "需要上传的本地文件的绝对路径",
32
- },
33
- sessionId: {
34
- type: "string",
35
- description: "当前雇佣会话的 sessionId。处于用户雇佣会话时必须传入," +
36
- "上传完成后会自动将文件与该会话关联。" +
37
- "如果系统提示词中包含【当前会话信息】,请将其中的 sessionId 值传入此参数。",
38
- },
39
- },
40
- required: ["filePath"],
41
- additionalProperties: false,
42
- };
30
+ const UPLOAD_PARAMS = Type.Object({
31
+ filePath: Type.String({ description: "需要上传的本地文件的绝对路径" }),
32
+ sessionId: Type.Optional(Type.String({
33
+ description: "当前雇佣会话的 sessionId。处于用户雇佣会话时必须传入," +
34
+ "上传完成后会自动将文件与该会话关联。" +
35
+ "如果系统提示词中包含【当前会话信息】,请将其中的 sessionId 值传入此参数。",
36
+ })),
37
+ });
43
38
  // ──────────────────────────────────────────────────────────────────────────────
44
39
  // 工具:insta_upload_artifact
45
40
  // ──────────────────────────────────────────────────────────────────────────────
@@ -77,8 +72,10 @@ export const uploadArtifactToolFactory = (_ctx) => {
77
72
  const p = params;
78
73
  const filePath = typeof p["filePath"] === "string" ? p["filePath"].trim() : "";
79
74
  const sessionId = typeof p["sessionId"] === "string" ? p["sessionId"].trim() : "";
80
- // ── Step 1: 参数校验 ────────────────────────────────────────────────
75
+ const baseDir = _ctx.agentDir ?? _ctx.workspaceDir ?? process.cwd();
76
+ log.info("execute ENTER", { toolCallId: _toolCallId, filePath, sessionId: sessionId || "(none)", baseDir });
81
77
  if (!filePath) {
78
+ log.warn("execute missing filePath");
82
79
  const err = {
83
80
  ok: false,
84
81
  error: "缺少必填参数:filePath(文件绝对路径)",
@@ -89,25 +86,25 @@ export const uploadArtifactToolFactory = (_ctx) => {
89
86
  };
90
87
  }
91
88
  if (!existsSync(filePath)) {
89
+ log.warn("execute file not found", { filePath });
92
90
  const err = { ok: false, error: `文件不存在:${filePath}` };
93
91
  return {
94
92
  content: [{ type: "text", text: JSON.stringify(err) }],
95
93
  details: err,
96
94
  };
97
95
  }
98
- // ── Step 2: 读取文件,构造 multipart/form-data ─────────────────────
99
96
  const fileBuffer = await readFile(filePath);
100
97
  const filename = basename(filePath);
98
+ log.info("execute file read", { filename, bytes: fileBuffer.length });
101
99
  const blob = new Blob([fileBuffer]);
102
100
  const formData = new FormData();
103
101
  formData.append("file", blob, filename);
104
102
  if (sessionId) {
105
103
  formData.append("sessionId", sessionId);
106
104
  }
107
- // ── Step 3: 读取认证凭据 ──────────────────────────────────────────
108
- const baseDir = _ctx.agentDir ?? _ctx.workspaceDir ?? process.cwd();
109
105
  const profile = await readProfile(baseDir);
110
106
  if (!profile?.app_key || !profile?.app_secret) {
107
+ log.warn("execute missing credentials", { has_key: !!profile?.app_key, has_secret: !!profile?.app_secret });
111
108
  const err = {
112
109
  ok: false,
113
110
  error: "未找到有效的 app_key / app_secret,请先完成档案注册。",
@@ -117,8 +114,8 @@ export const uploadArtifactToolFactory = (_ctx) => {
117
114
  details: err,
118
115
  };
119
116
  }
120
- // ── Step 4: 调用制品上传并绑定接口 ────────────────────────────────
121
117
  const uploadUrl = getInstaUrl("artifactUploadAndBind");
118
+ log.info("execute upload POST →", { uploadUrl, filename });
122
119
  const response = await fetch(uploadUrl, {
123
120
  method: "POST",
124
121
  headers: {
@@ -127,17 +124,19 @@ export const uploadArtifactToolFactory = (_ctx) => {
127
124
  },
128
125
  body: formData,
129
126
  });
127
+ log.info("execute upload POST ←", { status: response.status, ok: response.ok });
130
128
  if (!response.ok) {
131
129
  const errText = await response
132
130
  .text()
133
131
  .catch(() => `HTTP ${response.status}`);
132
+ log.error("execute HTTP error", undefined, { status: response.status, body: errText.slice(0, 200) });
134
133
  throw new Error(`上传失败:HTTP ${response.status} ${errText}`);
135
134
  }
136
- // ── Step 5: 解析并返回响应 ─────────────────────────────────────────
137
135
  const rawData = await response.json();
136
+ log.debug("execute response body", { rawData });
138
137
  const result = parseUploadAndBindResponse(rawData);
139
138
  if (result === null) {
140
- // 响应结构不符合预期,原样透传,不丢失信息
139
+ log.warn("execute unexpected response shape", { rawData });
141
140
  return {
142
141
  content: [
143
142
  { type: "text", text: JSON.stringify(rawData, null, 2) },
@@ -145,6 +144,7 @@ export const uploadArtifactToolFactory = (_ctx) => {
145
144
  details: rawData,
146
145
  };
147
146
  }
147
+ log.info("execute DONE", { upload_url: result.upload.url ?? result.upload.address });
148
148
  return {
149
149
  content: [
150
150
  { type: "text", text: JSON.stringify(result, null, 2) },
@@ -154,6 +154,7 @@ export const uploadArtifactToolFactory = (_ctx) => {
154
154
  }
155
155
  catch (e) {
156
156
  const message = e instanceof Error ? e.message : "上传过程中发生未知错误";
157
+ log.error("execute exception", e instanceof Error ? e : undefined);
157
158
  const err = { ok: false, error: message };
158
159
  return {
159
160
  content: [{ type: "text", text: message }],
@@ -1 +1 @@
1
- {"version":3,"file":"upload-artifact.js","sourceRoot":"","sources":["../../../src/tools/upload-artifact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"upload-artifact.js","sourceRoot":"","sources":["../../../src/tools/upload-artifact.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/utils/profile.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAQ1E;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAUf"}
1
+ {"version":3,"file":"profile.d.ts","sourceRoot":"","sources":["../../../src/utils/profile.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAIF,wBAAsB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAiB1E;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAgBf"}
@@ -1,23 +1,41 @@
1
1
  import { readFile, writeFile } from "node:fs/promises";
2
2
  import { dirname, join } from "node:path";
3
3
  import { acquireLock, ensureDir, releaseLock } from "./file-lock.js";
4
+ import { DebugLogger } from "../channel/logger.js";
5
+ import { DEBUG_ENABLED } from "../channel/config.js";
6
+ const log = new DebugLogger(DEBUG_ENABLED, "[InstaPlugin:profile]");
4
7
  const PROFILE_RELATIVE_PATH = ".insta/config/profile.json";
5
8
  export async function readProfile(baseDir) {
6
9
  const filePath = join(baseDir, PROFILE_RELATIVE_PATH);
10
+ log.debug("readProfile", { filePath });
7
11
  try {
8
12
  const raw = await readFile(filePath, "utf-8");
9
- return JSON.parse(raw);
13
+ const profile = JSON.parse(raw);
14
+ log.debug("readProfile OK", {
15
+ filePath,
16
+ app_key: profile.app_key ? profile.app_key.slice(0, 8) + "…" : "(empty)",
17
+ claw_id: profile.claw_id ?? "(none)",
18
+ has_secret: !!profile.app_secret,
19
+ });
20
+ return profile;
10
21
  }
11
- catch {
22
+ catch (err) {
23
+ log.debug("readProfile miss", { filePath, reason: err.code ?? String(err) });
12
24
  return null;
13
25
  }
14
26
  }
15
27
  export async function writeProfile(baseDir, profile) {
16
28
  const filePath = join(baseDir, PROFILE_RELATIVE_PATH);
29
+ log.info("writeProfile START", {
30
+ filePath,
31
+ app_key: profile.app_key ? profile.app_key.slice(0, 8) + "…" : "(empty)",
32
+ claw_id: profile.claw_id ?? "(none)",
33
+ });
17
34
  await ensureDir(filePath);
18
35
  const lockPath = await acquireLock(dirname(filePath), ".profile.lock");
19
36
  try {
20
37
  await writeFile(filePath, JSON.stringify(profile, null, 2), "utf-8");
38
+ log.info("writeProfile OK", { filePath });
21
39
  }
22
40
  finally {
23
41
  await releaseLock(lockPath);
@@ -1 +1 @@
1
- {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/utils/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiBrE,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACtD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACtD,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"profile.js","sourceRoot":"","sources":["../../../src/utils/profile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,aAAa,EAAE,uBAAuB,CAAC,CAAC;AAiBpE,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAE3D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAAe;IAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACtD,GAAG,CAAC,KAAK,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;QAC3C,GAAG,CAAC,KAAK,CAAC,gBAAgB,EAAE;YAC1B,QAAQ;YACR,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS;YACxE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ;YACpC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU;SACjC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAG,GAA6B,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACxG,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAAgB;IAEhB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IACtD,GAAG,CAAC,IAAI,CAAC,oBAAoB,EAAE;QAC7B,QAAQ;QACR,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS;QACxE,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,QAAQ;KACrC,CAAC,CAAC;IACH,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAE1B,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,CAAC,CAAC;IACvE,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QACrE,GAAG,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;YAAS,CAAC;QACT,MAAM,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
@@ -1,11 +1,22 @@
1
1
  {
2
2
  "id": "insta-plugin-openclaw",
3
- "channels": [
4
- "insta-connector"
5
- ],
3
+ "channels": ["insta-connector"],
4
+ "contracts": {
5
+ "tools": true,
6
+ "channel": true
7
+ },
6
8
  "configSchema": {
7
9
  "type": "object",
8
10
  "additionalProperties": false,
9
- "properties": {}
11
+ "properties": {
12
+ "enabled": {
13
+ "type": "boolean",
14
+ "default": true
15
+ },
16
+ "systemPrompt": {
17
+ "type": "string",
18
+ "description": "System prompt for the InstaClaw connector"
19
+ }
20
+ }
10
21
  }
11
22
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@insta-dev01/insta-plugin-openclaw",
3
- "version": "1.0.1",
3
+ "version": "1.0.4",
4
4
  "description": "Instagram Claw Connector - A lightweight OpenClaw channel plugin for WebSocket-based bidirectional messaging",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -42,15 +42,18 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "archiver": "^8.0.0",
45
- "openclaw": "^2026.5.20",
45
+ "typebox": "1.1.39",
46
46
  "ws": "^8.20.1"
47
47
  },
48
+ "peerDependencies": {
49
+ "openclaw": ">=2026.5.20"
50
+ },
48
51
  "devDependencies": {
49
- "@types/archiver": "^7.0.0",
50
52
  "@types/node": "^20.19.37",
51
53
  "@types/ws": "^8.18.1",
52
54
  "@vitest/coverage-v8": "^2.0.0",
53
55
  "@vitest/ui": "^2.1.9",
56
+ "openclaw": "^2026.6.1",
54
57
  "typescript": "^5.6.0",
55
58
  "vitest": "^2.1.9"
56
59
  },