@robota-sdk/agent-cli 3.0.0-beta.10 → 3.0.0-beta.101

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 (156) hide show
  1. package/CHANGELOG.md +3008 -0
  2. package/LICENSE +661 -21
  3. package/README.md +527 -170
  4. package/bin/agent.cjs +39 -0
  5. package/dist/node/artifact-DrPhOb_v.d.ts +749 -0
  6. package/dist/node/artifact-DrPhOb_v.d.ts.map +1 -0
  7. package/dist/node/bin.js +35 -19
  8. package/dist/node/bounded-output-BdWv9SX3-28em7iHq.js +2 -0
  9. package/dist/node/bounded-output-BdWv9SX3-28em7iHq.js.map +1 -0
  10. package/dist/node/bounded-output-BdWv9SX3-C4ucXwLR.js +2 -0
  11. package/dist/node/cli-core-CIzUq54B.js +2920 -0
  12. package/dist/node/command-executor-D_UBZHxh-CVZipoOV.js +2 -0
  13. package/dist/node/command-executor-D_UBZHxh-CVZipoOV.js.map +1 -0
  14. package/dist/node/command-executor-D_UBZHxh-D7UrdAlN.js +2 -0
  15. package/dist/node/desktop-host.d.ts +53 -0
  16. package/dist/node/desktop-host.d.ts.map +1 -0
  17. package/dist/node/desktop-host.js +2 -0
  18. package/dist/node/desktop-host.js.map +1 -0
  19. package/dist/node/headless.js +4 -0
  20. package/dist/node/host.d.ts +3 -0
  21. package/dist/node/host.js +1 -0
  22. package/dist/node/http-executor-ADn4locH-D-8crzF8.js +2 -0
  23. package/dist/node/http-executor-ADn4locH-D-8crzF8.js.map +1 -0
  24. package/dist/node/http-executor-ADn4locH-uz5KV6N-.js +2 -0
  25. package/dist/node/index.d.ts +790 -49
  26. package/dist/node/index.d.ts.map +1 -0
  27. package/dist/node/index.js +6 -13
  28. package/dist/node/index.js.map +1 -0
  29. package/dist/node/node-AQEjsK5o.js +2 -0
  30. package/dist/node/node-AQEjsK5o.js.map +1 -0
  31. package/dist/node/node-B5wKOmx1.js +165 -0
  32. package/dist/node/node-B5wKOmx1.js.map +1 -0
  33. package/dist/node/node-BQfSVkbA.js +2 -0
  34. package/dist/node/node-BRrU0Q8C.js +165 -0
  35. package/dist/node/node-CvUY6TbD.js +15 -0
  36. package/dist/node/node-DQ4XoykT.js +15 -0
  37. package/dist/node/node-DQ4XoykT.js.map +1 -0
  38. package/dist/node/product-host-Btm4B-p5.js +2954 -0
  39. package/dist/node/product-host-Btm4B-p5.js.map +1 -0
  40. package/dist/node/product-host-Cle0fPIc.d.ts +4691 -0
  41. package/dist/node/product-host-Cle0fPIc.d.ts.map +1 -0
  42. package/dist/node/rolldown-runtime-C9xYM0wc.js +1 -0
  43. package/dist/node/rolldown-runtime-DK3Fl9T5-BeX3Bzvn.js +2 -0
  44. package/dist/node/rolldown-runtime-DK3Fl9T5-DK3Fl9T5.js +2 -0
  45. package/dist/node/rolldown-runtime-DK3Fl9T5-DK3Fl9T5.js.map +1 -0
  46. package/dist/node/rolldown-runtime-rs7quPpn.js +2 -0
  47. package/dist/node/verdict-decoder-Dz_rjoIZ-DA8BKB83.js +2 -0
  48. package/dist/node/verdict-decoder-Dz_rjoIZ-DA8BKB83.js.map +1 -0
  49. package/dist/node/verdict-decoder-Dz_rjoIZ-qM0jJVsB.js +2 -0
  50. package/dist/web/app-sandbox.html +145 -0
  51. package/dist/web/assets/PretendardVariable.subset.0-BHUkWNFR.woff2 +0 -0
  52. package/dist/web/assets/PretendardVariable.subset.1-C-__qv6_.woff2 +0 -0
  53. package/dist/web/assets/PretendardVariable.subset.10-DzSWztS8.woff2 +0 -0
  54. package/dist/web/assets/PretendardVariable.subset.11-CqVmlKJn.woff2 +0 -0
  55. package/dist/web/assets/PretendardVariable.subset.12-BHuZSgT0.woff2 +0 -0
  56. package/dist/web/assets/PretendardVariable.subset.13-C42mj_j2.woff2 +0 -0
  57. package/dist/web/assets/PretendardVariable.subset.14-Bl512uUX.woff2 +0 -0
  58. package/dist/web/assets/PretendardVariable.subset.15-D04iXIE3.woff2 +0 -0
  59. package/dist/web/assets/PretendardVariable.subset.16-BQUnS2GX.woff2 +0 -0
  60. package/dist/web/assets/PretendardVariable.subset.17-BfZSA-Xc.woff2 +0 -0
  61. package/dist/web/assets/PretendardVariable.subset.18-CwAxMC3C.woff2 +0 -0
  62. package/dist/web/assets/PretendardVariable.subset.19-CJu4Zcdo.woff2 +0 -0
  63. package/dist/web/assets/PretendardVariable.subset.2-dCZkyKLw.woff2 +0 -0
  64. package/dist/web/assets/PretendardVariable.subset.20-Ig1-z3n5.woff2 +0 -0
  65. package/dist/web/assets/PretendardVariable.subset.21-yKPEdLXC.woff2 +0 -0
  66. package/dist/web/assets/PretendardVariable.subset.22-CSqxKoOs.woff2 +0 -0
  67. package/dist/web/assets/PretendardVariable.subset.23-DK80wi0t.woff2 +0 -0
  68. package/dist/web/assets/PretendardVariable.subset.24-CmkE8Q8D.woff2 +0 -0
  69. package/dist/web/assets/PretendardVariable.subset.25-CsoWBIZB.woff2 +0 -0
  70. package/dist/web/assets/PretendardVariable.subset.26-Sozl8dw8.woff2 +0 -0
  71. package/dist/web/assets/PretendardVariable.subset.27-CT6nuW9L.woff2 +0 -0
  72. package/dist/web/assets/PretendardVariable.subset.28-CpO0Y96p.woff2 +0 -0
  73. package/dist/web/assets/PretendardVariable.subset.29-D6hjrUWm.woff2 +0 -0
  74. package/dist/web/assets/PretendardVariable.subset.3-Dqw33sf4.woff2 +0 -0
  75. package/dist/web/assets/PretendardVariable.subset.30-CWDM1c0J.woff2 +0 -0
  76. package/dist/web/assets/PretendardVariable.subset.31-CdmyZ5mm.woff2 +0 -0
  77. package/dist/web/assets/PretendardVariable.subset.32-CGnFWD2i.woff2 +0 -0
  78. package/dist/web/assets/PretendardVariable.subset.33--0OT__YQ.woff2 +0 -0
  79. package/dist/web/assets/PretendardVariable.subset.34-CaCS33Md.woff2 +0 -0
  80. package/dist/web/assets/PretendardVariable.subset.35-DWFYRGLp.woff2 +0 -0
  81. package/dist/web/assets/PretendardVariable.subset.36-Dn5IBRQB.woff2 +0 -0
  82. package/dist/web/assets/PretendardVariable.subset.37-BD6FyOtY.woff2 +0 -0
  83. package/dist/web/assets/PretendardVariable.subset.38-D4hu443z.woff2 +0 -0
  84. package/dist/web/assets/PretendardVariable.subset.39-B_7wfth9.woff2 +0 -0
  85. package/dist/web/assets/PretendardVariable.subset.4-Bvh2YGoc.woff2 +0 -0
  86. package/dist/web/assets/PretendardVariable.subset.40-BDaOfdUe.woff2 +0 -0
  87. package/dist/web/assets/PretendardVariable.subset.41-BUACvzZC.woff2 +0 -0
  88. package/dist/web/assets/PretendardVariable.subset.42-Dp-5mnyL.woff2 +0 -0
  89. package/dist/web/assets/PretendardVariable.subset.43-DHdpry7N.woff2 +0 -0
  90. package/dist/web/assets/PretendardVariable.subset.44-qHopVhdd.woff2 +0 -0
  91. package/dist/web/assets/PretendardVariable.subset.45-BniyRFfm.woff2 +0 -0
  92. package/dist/web/assets/PretendardVariable.subset.46-BMRq7xC-.woff2 +0 -0
  93. package/dist/web/assets/PretendardVariable.subset.47-B-cWO2pw.woff2 +0 -0
  94. package/dist/web/assets/PretendardVariable.subset.48-Ct-fWrPO.woff2 +0 -0
  95. package/dist/web/assets/PretendardVariable.subset.49-BblQVys9.woff2 +0 -0
  96. package/dist/web/assets/PretendardVariable.subset.5-K_MNGNCe.woff2 +0 -0
  97. package/dist/web/assets/PretendardVariable.subset.50-C8IyFH7L.woff2 +0 -0
  98. package/dist/web/assets/PretendardVariable.subset.51-Bxd0gTAs.woff2 +0 -0
  99. package/dist/web/assets/PretendardVariable.subset.52-CNgqKOOJ.woff2 +0 -0
  100. package/dist/web/assets/PretendardVariable.subset.53-BSRnyb-u.woff2 +0 -0
  101. package/dist/web/assets/PretendardVariable.subset.54-Dt2-cQkx.woff2 +0 -0
  102. package/dist/web/assets/PretendardVariable.subset.55-jFgflYjX.woff2 +0 -0
  103. package/dist/web/assets/PretendardVariable.subset.56-BwZdvJZQ.woff2 +0 -0
  104. package/dist/web/assets/PretendardVariable.subset.57-BwFDg-Fs.woff2 +0 -0
  105. package/dist/web/assets/PretendardVariable.subset.58-DlucQts_.woff2 +0 -0
  106. package/dist/web/assets/PretendardVariable.subset.59-CMkWjhdo.woff2 +0 -0
  107. package/dist/web/assets/PretendardVariable.subset.6-Bxhohlcm.woff2 +0 -0
  108. package/dist/web/assets/PretendardVariable.subset.60-CeHezjjf.woff2 +0 -0
  109. package/dist/web/assets/PretendardVariable.subset.61-PUuTnod4.woff2 +0 -0
  110. package/dist/web/assets/PretendardVariable.subset.62-DGSAWCfb.woff2 +0 -0
  111. package/dist/web/assets/PretendardVariable.subset.63-B35xsm4O.woff2 +0 -0
  112. package/dist/web/assets/PretendardVariable.subset.64-CTbrgYF9.woff2 +0 -0
  113. package/dist/web/assets/PretendardVariable.subset.65-B66rjuyf.woff2 +0 -0
  114. package/dist/web/assets/PretendardVariable.subset.66-C3HqaDeY.woff2 +0 -0
  115. package/dist/web/assets/PretendardVariable.subset.67-BmuXdlDy.woff2 +0 -0
  116. package/dist/web/assets/PretendardVariable.subset.68-DS9B48d0.woff2 +0 -0
  117. package/dist/web/assets/PretendardVariable.subset.69-YT16ymcp.woff2 +0 -0
  118. package/dist/web/assets/PretendardVariable.subset.7-E2HaA55t.woff2 +0 -0
  119. package/dist/web/assets/PretendardVariable.subset.70-BUXiAGMT.woff2 +0 -0
  120. package/dist/web/assets/PretendardVariable.subset.71-DuPZj8us.woff2 +0 -0
  121. package/dist/web/assets/PretendardVariable.subset.72-pYYGrEQR.woff2 +0 -0
  122. package/dist/web/assets/PretendardVariable.subset.73-DMrK970F.woff2 +0 -0
  123. package/dist/web/assets/PretendardVariable.subset.74-D4tQnymK.woff2 +0 -0
  124. package/dist/web/assets/PretendardVariable.subset.75-CxKdrRNf.woff2 +0 -0
  125. package/dist/web/assets/PretendardVariable.subset.76-DhPm2b_q.woff2 +0 -0
  126. package/dist/web/assets/PretendardVariable.subset.77-DwaxqOC8.woff2 +0 -0
  127. package/dist/web/assets/PretendardVariable.subset.78-DhqRbBzT.woff2 +0 -0
  128. package/dist/web/assets/PretendardVariable.subset.79-XpoyPP38.woff2 +0 -0
  129. package/dist/web/assets/PretendardVariable.subset.8-CRbJhhyA.woff2 +0 -0
  130. package/dist/web/assets/PretendardVariable.subset.80-DsV9Qp_h.woff2 +0 -0
  131. package/dist/web/assets/PretendardVariable.subset.81-BZzF9Hb3.woff2 +0 -0
  132. package/dist/web/assets/PretendardVariable.subset.82-BgAHe30u.woff2 +0 -0
  133. package/dist/web/assets/PretendardVariable.subset.83-DF-zBLLe.woff2 +0 -0
  134. package/dist/web/assets/PretendardVariable.subset.84-Brb8EsYQ.woff2 +0 -0
  135. package/dist/web/assets/PretendardVariable.subset.85-Byo_x2hf.woff2 +0 -0
  136. package/dist/web/assets/PretendardVariable.subset.86-XG7lTN_6.woff2 +0 -0
  137. package/dist/web/assets/PretendardVariable.subset.87-Lzui2vbK.woff2 +0 -0
  138. package/dist/web/assets/PretendardVariable.subset.88-CqX6JSgh.woff2 +0 -0
  139. package/dist/web/assets/PretendardVariable.subset.89-DOzqWPpX.woff2 +0 -0
  140. package/dist/web/assets/PretendardVariable.subset.9-Btb3bmS6.woff2 +0 -0
  141. package/dist/web/assets/PretendardVariable.subset.90-BF7RiZjm.woff2 +0 -0
  142. package/dist/web/assets/PretendardVariable.subset.91-Csm0YNoH.woff2 +0 -0
  143. package/dist/web/assets/index-2GhVGsHN.js +314 -0
  144. package/dist/web/assets/index-BSxTg2Py.css +1 -0
  145. package/dist/web/index.html +15 -0
  146. package/package.json +203 -34
  147. package/scripts/koffi-bun-plugin.mjs +116 -0
  148. package/scripts/native-build.d.mts +19 -0
  149. package/scripts/native-build.mjs +72 -0
  150. package/scripts/qualify-koffi-gc.mjs +28 -0
  151. package/dist/node/bin.cjs +0 -1368
  152. package/dist/node/bin.d.cts +0 -1
  153. package/dist/node/bin.d.ts +0 -1
  154. package/dist/node/chunk-UT4RQDTI.js +0 -1337
  155. package/dist/node/index.cjs +0 -1375
  156. package/dist/node/index.d.cts +0 -49
@@ -0,0 +1,19 @@
1
+ export interface IProductNativeBuildOptions {
2
+ /** Absolute consumer-owned JavaScript entry; it must create the same product host on re-entry. */
3
+ readonly entry: string;
4
+ /** Absolute destination for the executable. */
5
+ readonly outfile: string;
6
+ readonly version: string;
7
+ readonly sourceVersion?: string;
8
+ readonly buildMetadata?: string | null;
9
+ /** Absolute consumer-maintained third-party notice file, copied beside the executable. */
10
+ readonly noticesFile: string;
11
+ /** Optional matching host target; cross-host addon packaging is refused. */
12
+ readonly target?: 'darwin-arm64' | 'darwin-x64' | 'linux-arm64' | 'linux-x64' | 'windows-x64';
13
+ }
14
+
15
+ export function buildProductNativeBinary(options: IProductNativeBuildOptions): Promise<{
16
+ readonly binary: string;
17
+ readonly notices: string;
18
+ readonly target: string;
19
+ }>;
@@ -0,0 +1,72 @@
1
+ import { chmodSync, copyFileSync, existsSync, mkdirSync, statSync } from 'node:fs';
2
+ import { dirname, isAbsolute } from 'node:path';
3
+ import { createRequire } from 'node:module';
4
+
5
+ import { createKoffiBunPlugin } from './koffi-bun-plugin.mjs';
6
+
7
+ const TARGETS = Object.freeze({
8
+ 'darwin-arm64': 'bun-darwin-arm64',
9
+ 'darwin-x64': 'bun-darwin-x64',
10
+ 'linux-arm64': 'bun-linux-arm64',
11
+ 'linux-x64': 'bun-linux-x64',
12
+ 'windows-x64': 'bun-windows-x64',
13
+ });
14
+
15
+ const stubReactDevtools = {
16
+ name: 'stub-react-devtools',
17
+ setup(build) {
18
+ build.onResolve({ filter: /^react-devtools-core$/ }, () => ({
19
+ path: 'rdc', namespace: 'stub-rdc',
20
+ }));
21
+ build.onLoad({ filter: /.*/, namespace: 'stub-rdc' }, () => ({
22
+ contents: 'export default {}; export function connectToDevTools(){}', loader: 'js',
23
+ }));
24
+ },
25
+ };
26
+
27
+ /**
28
+ * Compile a consumer-owned CLI entry against installed npm dependencies. The entry must call
29
+ * createProductCliHost on every process start, including daemon and worker re-entry.
30
+ * Run this function under Bun on the target host after qualifying native-addon GC.
31
+ */
32
+ export async function buildProductNativeBinary(options) {
33
+ if (!process.versions.bun) throw new Error('Native CLI packaging requires Bun.');
34
+ const { entry, outfile, version, noticesFile } = options;
35
+ if (![entry, outfile, noticesFile].every((path) => typeof path === 'string' && isAbsolute(path)))
36
+ throw new Error('Entry, output and notices paths must be absolute.');
37
+ if (!existsSync(entry)) throw new Error('Consumer entry is missing.');
38
+ if (!existsSync(noticesFile) || !statSync(noticesFile).isFile() || statSync(noticesFile).size === 0)
39
+ throw new Error('Non-empty third-party notices file is required.');
40
+ if (typeof version !== 'string' || version.trim() === '') throw new Error('Artifact version is required.');
41
+ const host = `${process.platform === 'win32' ? 'windows' : process.platform}-${process.arch}`;
42
+ if (!Object.hasOwn(TARGETS, host)) throw new Error(`Unsupported native CLI host: ${host}.`);
43
+ if (options.target !== undefined && options.target !== host)
44
+ throw new Error(`Native CLI packaging requires matching host ${host}.`);
45
+ try {
46
+ createRequire(new URL('../package.json', import.meta.url)).resolve('e2b/dist/index.mjs');
47
+ } catch (cause) {
48
+ throw new Error(
49
+ 'Native CLI packaging includes the E2B hosted capability; install e2b@2.51.0 alongside @robota-sdk/agent-cli before building.',
50
+ { cause },
51
+ );
52
+ }
53
+ await import('./qualify-koffi-gc.mjs');
54
+ mkdirSync(dirname(outfile), { recursive: true });
55
+ const result = await Bun.build({
56
+ entrypoints: [entry],
57
+ target: 'bun',
58
+ compile: { target: TARGETS[host], outfile },
59
+ define: {
60
+ __AGENT_VERSION__: JSON.stringify(version),
61
+ __AGENT_SOURCE_VERSION__: JSON.stringify(options.sourceVersion ?? version),
62
+ __AGENT_BUILD_METADATA__: JSON.stringify(options.buildMetadata ?? null),
63
+ },
64
+ plugins: [stubReactDevtools, createKoffiBunPlugin(`${process.platform}-${process.arch}`, new URL('../package.json', import.meta.url))],
65
+ });
66
+ if (!result.success || !existsSync(outfile))
67
+ throw new Error(`Native CLI packaging failed: ${result.logs.map(String).join('\n')}`);
68
+ chmodSync(outfile, 0o755);
69
+ const noticesOutput = `${outfile}.THIRD_PARTY_NOTICES.txt`;
70
+ copyFileSync(noticesFile, noticesOutput);
71
+ return Object.freeze({ binary: outfile, notices: noticesOutput, target: host });
72
+ }
@@ -0,0 +1,28 @@
1
+ import assert from 'node:assert/strict';
2
+
3
+ import koffi from 'koffi';
4
+
5
+ if (!process.versions.bun) throw new Error('Native addon GC qualification requires Bun.');
6
+
7
+ function releaseNativeFunction() {
8
+ const library = koffi.load(
9
+ process.platform === 'win32'
10
+ ? 'kernel32.dll'
11
+ : process.platform === 'darwin'
12
+ ? '/usr/lib/libSystem.B.dylib'
13
+ : 'libc.so.6',
14
+ );
15
+ const pid = library.func(
16
+ process.platform === 'win32' ? 'uint32_t __stdcall GetCurrentProcessId()' : 'int getpid()',
17
+ );
18
+ assert.equal(pid(), process.pid);
19
+ }
20
+
21
+ // Bun <= 1.3.14 aborts when Koffi releases an N-API reference during GC.
22
+ // Exercise real addon finalizers before accepting this engine for standalone builds.
23
+ for (let index = 0; index < 3; index++) releaseNativeFunction();
24
+ for (let index = 0; index < 3; index++) {
25
+ globalThis.Bun.gc(true);
26
+ await new Promise((resolve) => setTimeout(resolve, 0));
27
+ }
28
+ console.log('Native addon GC qualification passed.');