deepadb 1.0.0

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 (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +631 -0
  3. package/build/bridge/adb-bridge.d.ts +65 -0
  4. package/build/bridge/adb-bridge.d.ts.map +1 -0
  5. package/build/bridge/adb-bridge.js +164 -0
  6. package/build/bridge/adb-bridge.js.map +1 -0
  7. package/build/bridge/device-manager.d.ts +41 -0
  8. package/build/bridge/device-manager.d.ts.map +1 -0
  9. package/build/bridge/device-manager.js +109 -0
  10. package/build/bridge/device-manager.js.map +1 -0
  11. package/build/bridge/local-bridge.d.ts +92 -0
  12. package/build/bridge/local-bridge.d.ts.map +1 -0
  13. package/build/bridge/local-bridge.js +345 -0
  14. package/build/bridge/local-bridge.js.map +1 -0
  15. package/build/config/config.d.ts +39 -0
  16. package/build/config/config.d.ts.map +1 -0
  17. package/build/config/config.js +84 -0
  18. package/build/config/config.js.map +1 -0
  19. package/build/graphql-api.d.ts +36 -0
  20. package/build/graphql-api.d.ts.map +1 -0
  21. package/build/graphql-api.js +296 -0
  22. package/build/graphql-api.js.map +1 -0
  23. package/build/http-transport.d.ts +26 -0
  24. package/build/http-transport.d.ts.map +1 -0
  25. package/build/http-transport.js +105 -0
  26. package/build/http-transport.js.map +1 -0
  27. package/build/index.d.ts +14 -0
  28. package/build/index.d.ts.map +1 -0
  29. package/build/index.js +66 -0
  30. package/build/index.js.map +1 -0
  31. package/build/middleware/chipset.d.ts +29 -0
  32. package/build/middleware/chipset.d.ts.map +1 -0
  33. package/build/middleware/chipset.js +123 -0
  34. package/build/middleware/chipset.js.map +1 -0
  35. package/build/middleware/cleanup.d.ts +24 -0
  36. package/build/middleware/cleanup.d.ts.map +1 -0
  37. package/build/middleware/cleanup.js +53 -0
  38. package/build/middleware/cleanup.js.map +1 -0
  39. package/build/middleware/fetch-utils.d.ts +19 -0
  40. package/build/middleware/fetch-utils.d.ts.map +1 -0
  41. package/build/middleware/fetch-utils.js +64 -0
  42. package/build/middleware/fetch-utils.js.map +1 -0
  43. package/build/middleware/logger.d.ts +17 -0
  44. package/build/middleware/logger.d.ts.map +1 -0
  45. package/build/middleware/logger.js +38 -0
  46. package/build/middleware/logger.js.map +1 -0
  47. package/build/middleware/output-processor.d.ts +57 -0
  48. package/build/middleware/output-processor.d.ts.map +1 -0
  49. package/build/middleware/output-processor.js +162 -0
  50. package/build/middleware/output-processor.js.map +1 -0
  51. package/build/middleware/sanitize.d.ts +30 -0
  52. package/build/middleware/sanitize.d.ts.map +1 -0
  53. package/build/middleware/sanitize.js +46 -0
  54. package/build/middleware/sanitize.js.map +1 -0
  55. package/build/middleware/security.d.ts +52 -0
  56. package/build/middleware/security.d.ts.map +1 -0
  57. package/build/middleware/security.js +123 -0
  58. package/build/middleware/security.js.map +1 -0
  59. package/build/middleware/ui-dump.d.ts +23 -0
  60. package/build/middleware/ui-dump.d.ts.map +1 -0
  61. package/build/middleware/ui-dump.js +59 -0
  62. package/build/middleware/ui-dump.js.map +1 -0
  63. package/build/server.d.ts +18 -0
  64. package/build/server.d.ts.map +1 -0
  65. package/build/server.js +133 -0
  66. package/build/server.js.map +1 -0
  67. package/build/tool-context.d.ts +22 -0
  68. package/build/tool-context.d.ts.map +1 -0
  69. package/build/tool-context.js +9 -0
  70. package/build/tool-context.js.map +1 -0
  71. package/build/tools/accessibility.d.ts +10 -0
  72. package/build/tools/accessibility.d.ts.map +1 -0
  73. package/build/tools/accessibility.js +259 -0
  74. package/build/tools/accessibility.js.map +1 -0
  75. package/build/tools/at-commands.d.ts +20 -0
  76. package/build/tools/at-commands.d.ts.map +1 -0
  77. package/build/tools/at-commands.js +378 -0
  78. package/build/tools/at-commands.js.map +1 -0
  79. package/build/tools/baseband.d.ts +15 -0
  80. package/build/tools/baseband.d.ts.map +1 -0
  81. package/build/tools/baseband.js +323 -0
  82. package/build/tools/baseband.js.map +1 -0
  83. package/build/tools/build.d.ts +6 -0
  84. package/build/tools/build.d.ts.map +1 -0
  85. package/build/tools/build.js +80 -0
  86. package/build/tools/build.js.map +1 -0
  87. package/build/tools/ci.d.ts +9 -0
  88. package/build/tools/ci.d.ts.map +1 -0
  89. package/build/tools/ci.js +163 -0
  90. package/build/tools/ci.js.map +1 -0
  91. package/build/tools/control.d.ts +10 -0
  92. package/build/tools/control.d.ts.map +1 -0
  93. package/build/tools/control.js +197 -0
  94. package/build/tools/control.js.map +1 -0
  95. package/build/tools/device-farm.d.ts +10 -0
  96. package/build/tools/device-farm.d.ts.map +1 -0
  97. package/build/tools/device-farm.js +140 -0
  98. package/build/tools/device-farm.js.map +1 -0
  99. package/build/tools/device-profiles.d.ts +16 -0
  100. package/build/tools/device-profiles.d.ts.map +1 -0
  101. package/build/tools/device-profiles.js +272 -0
  102. package/build/tools/device-profiles.js.map +1 -0
  103. package/build/tools/device.d.ts +6 -0
  104. package/build/tools/device.d.ts.map +1 -0
  105. package/build/tools/device.js +72 -0
  106. package/build/tools/device.js.map +1 -0
  107. package/build/tools/diagnostics.d.ts +7 -0
  108. package/build/tools/diagnostics.d.ts.map +1 -0
  109. package/build/tools/diagnostics.js +153 -0
  110. package/build/tools/diagnostics.js.map +1 -0
  111. package/build/tools/emulator.d.ts +9 -0
  112. package/build/tools/emulator.d.ts.map +1 -0
  113. package/build/tools/emulator.js +223 -0
  114. package/build/tools/emulator.js.map +1 -0
  115. package/build/tools/files.d.ts +6 -0
  116. package/build/tools/files.d.ts.map +1 -0
  117. package/build/tools/files.js +78 -0
  118. package/build/tools/files.js.map +1 -0
  119. package/build/tools/firmware-analysis.d.ts +24 -0
  120. package/build/tools/firmware-analysis.d.ts.map +1 -0
  121. package/build/tools/firmware-analysis.js +623 -0
  122. package/build/tools/firmware-analysis.js.map +1 -0
  123. package/build/tools/forwarding.d.ts +7 -0
  124. package/build/tools/forwarding.d.ts.map +1 -0
  125. package/build/tools/forwarding.js +64 -0
  126. package/build/tools/forwarding.js.map +1 -0
  127. package/build/tools/health.d.ts +7 -0
  128. package/build/tools/health.d.ts.map +1 -0
  129. package/build/tools/health.js +112 -0
  130. package/build/tools/health.js.map +1 -0
  131. package/build/tools/logcat-watch.d.ts +11 -0
  132. package/build/tools/logcat-watch.d.ts.map +1 -0
  133. package/build/tools/logcat-watch.js +209 -0
  134. package/build/tools/logcat-watch.js.map +1 -0
  135. package/build/tools/logs.d.ts +6 -0
  136. package/build/tools/logs.d.ts.map +1 -0
  137. package/build/tools/logs.js +83 -0
  138. package/build/tools/logs.js.map +1 -0
  139. package/build/tools/mirroring.d.ts +14 -0
  140. package/build/tools/mirroring.d.ts.map +1 -0
  141. package/build/tools/mirroring.js +243 -0
  142. package/build/tools/mirroring.js.map +1 -0
  143. package/build/tools/multi-device.d.ts +9 -0
  144. package/build/tools/multi-device.d.ts.map +1 -0
  145. package/build/tools/multi-device.js +138 -0
  146. package/build/tools/multi-device.js.map +1 -0
  147. package/build/tools/network-capture.d.ts +10 -0
  148. package/build/tools/network-capture.d.ts.map +1 -0
  149. package/build/tools/network-capture.js +143 -0
  150. package/build/tools/network-capture.js.map +1 -0
  151. package/build/tools/network-discovery.d.ts +21 -0
  152. package/build/tools/network-discovery.d.ts.map +1 -0
  153. package/build/tools/network-discovery.js +284 -0
  154. package/build/tools/network-discovery.js.map +1 -0
  155. package/build/tools/ota-monitor.d.ts +16 -0
  156. package/build/tools/ota-monitor.d.ts.map +1 -0
  157. package/build/tools/ota-monitor.js +211 -0
  158. package/build/tools/ota-monitor.js.map +1 -0
  159. package/build/tools/packages.d.ts +6 -0
  160. package/build/tools/packages.d.ts.map +1 -0
  161. package/build/tools/packages.js +237 -0
  162. package/build/tools/packages.js.map +1 -0
  163. package/build/tools/plugins.d.ts +22 -0
  164. package/build/tools/plugins.d.ts.map +1 -0
  165. package/build/tools/plugins.js +118 -0
  166. package/build/tools/plugins.js.map +1 -0
  167. package/build/tools/prompts.d.ts +9 -0
  168. package/build/tools/prompts.d.ts.map +1 -0
  169. package/build/tools/prompts.js +94 -0
  170. package/build/tools/prompts.js.map +1 -0
  171. package/build/tools/qemu.d.ts +18 -0
  172. package/build/tools/qemu.d.ts.map +1 -0
  173. package/build/tools/qemu.js +791 -0
  174. package/build/tools/qemu.js.map +1 -0
  175. package/build/tools/registry.d.ts +13 -0
  176. package/build/tools/registry.d.ts.map +1 -0
  177. package/build/tools/registry.js +221 -0
  178. package/build/tools/registry.js.map +1 -0
  179. package/build/tools/regression.d.ts +10 -0
  180. package/build/tools/regression.d.ts.map +1 -0
  181. package/build/tools/regression.js +215 -0
  182. package/build/tools/regression.js.map +1 -0
  183. package/build/tools/resources.d.ts +10 -0
  184. package/build/tools/resources.d.ts.map +1 -0
  185. package/build/tools/resources.js +77 -0
  186. package/build/tools/resources.js.map +1 -0
  187. package/build/tools/ril-intercept.d.ts +24 -0
  188. package/build/tools/ril-intercept.d.ts.map +1 -0
  189. package/build/tools/ril-intercept.js +273 -0
  190. package/build/tools/ril-intercept.js.map +1 -0
  191. package/build/tools/screen-record.d.ts +9 -0
  192. package/build/tools/screen-record.d.ts.map +1 -0
  193. package/build/tools/screen-record.js +95 -0
  194. package/build/tools/screen-record.js.map +1 -0
  195. package/build/tools/screenshot-diff.d.ts +13 -0
  196. package/build/tools/screenshot-diff.d.ts.map +1 -0
  197. package/build/tools/screenshot-diff.js +370 -0
  198. package/build/tools/screenshot-diff.js.map +1 -0
  199. package/build/tools/selinux-audit.d.ts +17 -0
  200. package/build/tools/selinux-audit.d.ts.map +1 -0
  201. package/build/tools/selinux-audit.js +301 -0
  202. package/build/tools/selinux-audit.js.map +1 -0
  203. package/build/tools/shell.d.ts +6 -0
  204. package/build/tools/shell.d.ts.map +1 -0
  205. package/build/tools/shell.js +63 -0
  206. package/build/tools/shell.js.map +1 -0
  207. package/build/tools/snapshot.d.ts +9 -0
  208. package/build/tools/snapshot.d.ts.map +1 -0
  209. package/build/tools/snapshot.js +192 -0
  210. package/build/tools/snapshot.js.map +1 -0
  211. package/build/tools/split-apk.d.ts +13 -0
  212. package/build/tools/split-apk.d.ts.map +1 -0
  213. package/build/tools/split-apk.js +229 -0
  214. package/build/tools/split-apk.js.map +1 -0
  215. package/build/tools/test-gen.d.ts +14 -0
  216. package/build/tools/test-gen.d.ts.map +1 -0
  217. package/build/tools/test-gen.js +252 -0
  218. package/build/tools/test-gen.js.map +1 -0
  219. package/build/tools/testing.d.ts +9 -0
  220. package/build/tools/testing.d.ts.map +1 -0
  221. package/build/tools/testing.js +144 -0
  222. package/build/tools/testing.js.map +1 -0
  223. package/build/tools/thermal-power.d.ts +19 -0
  224. package/build/tools/thermal-power.d.ts.map +1 -0
  225. package/build/tools/thermal-power.js +330 -0
  226. package/build/tools/thermal-power.js.map +1 -0
  227. package/build/tools/ui.d.ts +6 -0
  228. package/build/tools/ui.d.ts.map +1 -0
  229. package/build/tools/ui.js +266 -0
  230. package/build/tools/ui.js.map +1 -0
  231. package/build/tools/wireless.d.ts +7 -0
  232. package/build/tools/wireless.d.ts.map +1 -0
  233. package/build/tools/wireless.js +78 -0
  234. package/build/tools/wireless.js.map +1 -0
  235. package/build/tools/workflow-market.d.ts +17 -0
  236. package/build/tools/workflow-market.d.ts.map +1 -0
  237. package/build/tools/workflow-market.js +237 -0
  238. package/build/tools/workflow-market.js.map +1 -0
  239. package/build/tools/workflow.d.ts +32 -0
  240. package/build/tools/workflow.d.ts.map +1 -0
  241. package/build/tools/workflow.js +374 -0
  242. package/build/tools/workflow.js.map +1 -0
  243. package/build/ws-transport.d.ts +30 -0
  244. package/build/ws-transport.d.ts.map +1 -0
  245. package/build/ws-transport.js +133 -0
  246. package/build/ws-transport.js.map +1 -0
  247. package/package.json +37 -0
@@ -0,0 +1,237 @@
1
+ /**
2
+ * Workflow Marketplace — Community-shared workflow definitions.
3
+ *
4
+ * Extends the plugin registry model to include shareable workflow JSON
5
+ * definitions. Community-contributed test workflows, diagnostic sequences,
6
+ * and audit procedures are hosted in a registry manifest alongside plugins.
7
+ *
8
+ * Workflows are downloaded as JSON files into {tempDir}/workflows/ — the
9
+ * same directory used by the workflow orchestration engine, so installed
10
+ * marketplace workflows are immediately available to adb_workflow_run.
11
+ *
12
+ * Registry: reuses DA_REGISTRY_URL or a dedicated DA_WORKFLOW_REGISTRY_URL.
13
+ * Manifest: JSON array of { name, description, version, url, author, tags }.
14
+ */
15
+ import { z } from "zod";
16
+ import { join } from "path";
17
+ import { writeFileSync, readFileSync, existsSync, readdirSync, mkdirSync } from "fs";
18
+ import { createHash } from "crypto";
19
+ import { OutputProcessor } from "../middleware/output-processor.js";
20
+ import { fetchJson, fetchText } from "../middleware/fetch-utils.js";
21
+ const DEFAULT_WORKFLOW_REGISTRY_URL = "https://raw.githubusercontent.com/anthropics/DeepADB-plugins/main/workflows.json";
22
+ function getRegistryUrl() {
23
+ return process.env.DA_WORKFLOW_REGISTRY_URL ?? process.env.DA_REGISTRY_URL?.replace("registry.json", "workflows.json") ?? DEFAULT_WORKFLOW_REGISTRY_URL;
24
+ }
25
+ function getWorkflowDir(tempDir) {
26
+ return join(tempDir, "workflows");
27
+ }
28
+ function getInstalledWorkflows(dir) {
29
+ const installed = new Map();
30
+ if (!existsSync(dir))
31
+ return installed;
32
+ for (const file of readdirSync(dir).filter((f) => f.endsWith(".json"))) {
33
+ try {
34
+ const wf = JSON.parse(readFileSync(join(dir, file), "utf-8"));
35
+ const name = file.replace(".json", "");
36
+ installed.set(name, {
37
+ version: wf._marketplace?.version ?? "local",
38
+ description: wf.description ?? "",
39
+ });
40
+ }
41
+ catch { /* skip corrupt */ }
42
+ }
43
+ return installed;
44
+ }
45
+ export function registerWorkflowMarketTools(ctx) {
46
+ ctx.server.tool("adb_market_search", "Search the workflow marketplace for community-shared workflow definitions. Shows name, description, tags, author, and step count. Indicates which workflows are already installed locally.", {
47
+ query: z.string().optional().describe("Filter by name, description, or tag keyword"),
48
+ tag: z.string().optional().describe("Filter by exact tag (e.g., 'testing', 'diagnostics', 'security')"),
49
+ }, async ({ query, tag }) => {
50
+ try {
51
+ const registryUrl = getRegistryUrl();
52
+ let manifest;
53
+ try {
54
+ manifest = await fetchJson(registryUrl);
55
+ }
56
+ catch (error) {
57
+ return {
58
+ content: [{
59
+ type: "text",
60
+ text: `Could not fetch workflow marketplace from ${registryUrl}\n${error instanceof Error ? error.message : error}\n\nSet DA_WORKFLOW_REGISTRY_URL to a custom registry, or check your network connection.`,
61
+ }],
62
+ isError: true,
63
+ };
64
+ }
65
+ if (!Array.isArray(manifest)) {
66
+ return { content: [{ type: "text", text: "Invalid marketplace manifest (expected JSON array)." }], isError: true };
67
+ }
68
+ let filtered = manifest;
69
+ if (query) {
70
+ const q = query.toLowerCase();
71
+ filtered = filtered.filter((w) => w.name.toLowerCase().includes(q) ||
72
+ w.description.toLowerCase().includes(q) ||
73
+ (w.tags ?? []).some((t) => t.toLowerCase().includes(q)));
74
+ }
75
+ if (tag) {
76
+ const t = tag.toLowerCase();
77
+ filtered = filtered.filter((w) => (w.tags ?? []).some((wt) => wt.toLowerCase() === t));
78
+ }
79
+ if (filtered.length === 0) {
80
+ return { content: [{ type: "text", text: query || tag ? `No workflows matching "${query ?? tag}" in marketplace.` : "Marketplace is empty." }] };
81
+ }
82
+ const dir = getWorkflowDir(ctx.config.tempDir);
83
+ const installed = getInstalledWorkflows(dir);
84
+ const lines = filtered.map((w) => {
85
+ const status = installed.has(w.name) ? " [installed]" : "";
86
+ const tagStr = w.tags && w.tags.length > 0 ? `\n Tags: ${w.tags.join(", ")}` : "";
87
+ const stepsStr = w.steps ? ` (${w.steps} steps)` : "";
88
+ return `${w.name} v${w.version}${stepsStr}${status}\n ${w.description}${tagStr}${w.author ? `\n Author: ${w.author}` : ""}`;
89
+ });
90
+ return {
91
+ content: [{
92
+ type: "text",
93
+ text: `${filtered.length} workflow(s) in marketplace:\n\n${lines.join("\n\n")}\n\nRegistry: ${registryUrl}`,
94
+ }],
95
+ };
96
+ }
97
+ catch (error) {
98
+ return { content: [{ type: "text", text: OutputProcessor.formatError(error) }], isError: true };
99
+ }
100
+ });
101
+ ctx.server.tool("adb_market_install", "Download and install a workflow from the marketplace. Saves to the workflows directory for immediate use with adb_workflow_run.", {
102
+ name: z.string().describe("Workflow name from the marketplace"),
103
+ force: z.boolean().optional().default(false).describe("Overwrite if a workflow with this name already exists locally"),
104
+ }, async ({ name, force }) => {
105
+ try {
106
+ const registryUrl = getRegistryUrl();
107
+ let manifest;
108
+ try {
109
+ manifest = await fetchJson(registryUrl);
110
+ }
111
+ catch (error) {
112
+ return { content: [{ type: "text", text: `Could not fetch marketplace: ${error instanceof Error ? error.message : error}` }], isError: true };
113
+ }
114
+ const entry = manifest.find((w) => w.name === name);
115
+ if (!entry) {
116
+ const available = manifest.map((w) => w.name).join(", ");
117
+ return { content: [{ type: "text", text: `Workflow "${name}" not found in marketplace.\nAvailable: ${available || "(empty)"}` }], isError: true };
118
+ }
119
+ const dir = getWorkflowDir(ctx.config.tempDir);
120
+ if (!existsSync(dir))
121
+ mkdirSync(dir, { recursive: true });
122
+ const safeName = name.replace(/[^a-zA-Z0-9_-]/g, "_");
123
+ const filePath = join(dir, `${safeName}.json`);
124
+ if (existsSync(filePath) && !force) {
125
+ return { content: [{ type: "text", text: `Workflow "${name}" already exists locally. Use force=true to overwrite.` }], isError: true };
126
+ }
127
+ // Download
128
+ let rawJson;
129
+ try {
130
+ rawJson = await fetchText(entry.url);
131
+ }
132
+ catch (error) {
133
+ return { content: [{ type: "text", text: `Failed to download workflow: ${error instanceof Error ? error.message : error}` }], isError: true };
134
+ }
135
+ // Integrity verification
136
+ if (entry.sha256) {
137
+ const actualHash = createHash("sha256").update(rawJson).digest("hex");
138
+ if (actualHash !== entry.sha256) {
139
+ return {
140
+ content: [{
141
+ type: "text",
142
+ text: `Integrity check failed for workflow "${name}".\nExpected SHA-256: ${entry.sha256}\nActual SHA-256: ${actualHash}`,
143
+ }],
144
+ isError: true,
145
+ };
146
+ }
147
+ }
148
+ // Validate it's a proper workflow
149
+ let parsed;
150
+ try {
151
+ parsed = JSON.parse(rawJson);
152
+ }
153
+ catch {
154
+ return { content: [{ type: "text", text: `Downloaded content is not valid JSON.` }], isError: true };
155
+ }
156
+ if (!parsed.name || !Array.isArray(parsed.steps)) {
157
+ return { content: [{ type: "text", text: `Downloaded JSON is not a valid workflow (missing 'name' or 'steps').` }], isError: true };
158
+ }
159
+ // Attach marketplace metadata
160
+ parsed._marketplace = {
161
+ version: entry.version,
162
+ author: entry.author,
163
+ sourceUrl: entry.url,
164
+ installedAt: new Date().toISOString(),
165
+ };
166
+ writeFileSync(filePath, JSON.stringify(parsed, null, 2));
167
+ const stepCount = Array.isArray(parsed.steps) ? parsed.steps.length : "?";
168
+ return {
169
+ content: [{
170
+ type: "text",
171
+ text: `Workflow "${name}" v${entry.version} installed (${stepCount} steps).\nSaved: ${filePath}\nRun with: adb_workflow_run workflow="${safeName}"`,
172
+ }],
173
+ };
174
+ }
175
+ catch (error) {
176
+ return { content: [{ type: "text", text: OutputProcessor.formatError(error) }], isError: true };
177
+ }
178
+ });
179
+ ctx.server.tool("adb_market_export", "Export a local workflow with marketplace metadata for sharing. Produces a JSON file with name, description, version, author, and tags suitable for submission to the marketplace registry.", {
180
+ workflow: z.string().describe("Name of the local workflow to export (from adb_workflow_list)"),
181
+ author: z.string().optional().describe("Author name to include in metadata"),
182
+ version: z.string().optional().default("1.0.0").describe("Version string"),
183
+ tags: z.array(z.string()).optional().describe("Tags for discovery (e.g., ['testing', 'diagnostics'])"),
184
+ }, async ({ workflow, author, version, tags }) => {
185
+ try {
186
+ const dir = getWorkflowDir(ctx.config.tempDir);
187
+ const safeName = workflow.replace(/[^a-zA-Z0-9_-]/g, "_");
188
+ const filePath = join(dir, `${safeName}.json`);
189
+ if (!existsSync(filePath)) {
190
+ return { content: [{ type: "text", text: `Workflow "${workflow}" not found. Use adb_workflow_list to see available workflows.` }], isError: true };
191
+ }
192
+ const wf = JSON.parse(readFileSync(filePath, "utf-8"));
193
+ // Build export package
194
+ const exportPkg = {
195
+ ...wf,
196
+ _marketplace: {
197
+ version,
198
+ author: author ?? "unknown",
199
+ tags: tags ?? [],
200
+ exportedAt: new Date().toISOString(),
201
+ },
202
+ };
203
+ const exportJson = JSON.stringify(exportPkg, null, 2);
204
+ const sha256 = createHash("sha256").update(exportJson).digest("hex");
205
+ const exportPath = join(dir, `${safeName}.export.json`);
206
+ writeFileSync(exportPath, exportJson);
207
+ const stepCount = Array.isArray(wf.steps) ? wf.steps.length : "?";
208
+ const sections = [];
209
+ sections.push(`Workflow exported for marketplace sharing:`);
210
+ sections.push(` Name: ${wf.name ?? safeName}`);
211
+ sections.push(` Description: ${wf.description ?? "(none)"}`);
212
+ sections.push(` Version: ${version}`);
213
+ sections.push(` Steps: ${stepCount}`);
214
+ sections.push(` Author: ${author ?? "unknown"}`);
215
+ if (tags && tags.length > 0)
216
+ sections.push(` Tags: ${tags.join(", ")}`);
217
+ sections.push(` SHA-256: ${sha256}`);
218
+ sections.push(` Exported to: ${exportPath}`);
219
+ sections.push(`\nRegistry manifest entry:`);
220
+ sections.push(JSON.stringify({
221
+ name: safeName,
222
+ description: wf.description ?? "",
223
+ version,
224
+ url: "<upload-url>",
225
+ author: author ?? "unknown",
226
+ tags: tags ?? [],
227
+ sha256,
228
+ steps: stepCount,
229
+ }, null, 2));
230
+ return { content: [{ type: "text", text: sections.join("\n") }] };
231
+ }
232
+ catch (error) {
233
+ return { content: [{ type: "text", text: OutputProcessor.formatError(error) }], isError: true };
234
+ }
235
+ });
236
+ }
237
+ //# sourceMappingURL=workflow-market.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow-market.js","sourceRoot":"","sources":["../../src/tools/workflow-market.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Workflow Orchestration Engine — Declarative multi-step tool sequences.
3
+ *
4
+ * Executes JSON-defined workflows that chain device operations into
5
+ * repeatable, parameterized sequences with variable capture, conditional
6
+ * steps, and loop support. Workflows run entirely server-side through
7
+ * direct bridge calls.
8
+ *
9
+ * Supported step actions: shell, root_shell, install, screenshot,
10
+ * logcat, getprop, sleep. Each action maps directly to ADB bridge
11
+ * operations — no MCP tool re-invocation overhead.
12
+ *
13
+ * Workflow files are stored in {tempDir}/workflows/.
14
+ *
15
+ * Example workflow JSON:
16
+ * {
17
+ * "name": "restart-and-verify",
18
+ * "description": "Restart an app and verify it launched correctly",
19
+ * "variables": { "pkg": "com.example.app" },
20
+ * "steps": [
21
+ * { "name": "stop", "action": "shell", "command": "am force-stop {{pkg}}" },
22
+ * { "name": "pause", "action": "sleep", "ms": 1000 },
23
+ * { "name": "start", "action": "shell", "command": "monkey -p {{pkg}} -c android.intent.category.LAUNCHER 1" },
24
+ * { "name": "wait", "action": "sleep", "ms": 2000 },
25
+ * { "name": "check", "action": "shell", "command": "dumpsys activity activities | grep mResumedActivity", "capture": "activity" },
26
+ * { "name": "screenshot", "action": "screenshot" }
27
+ * ]
28
+ * }
29
+ */
30
+ import { ToolContext } from "../tool-context.js";
31
+ export declare function registerWorkflowTools(ctx: ToolContext): void;
32
+ //# sourceMappingURL=workflow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/tools/workflow.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAKH,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AA0HjD,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI,CAsR5D"}