@openclaw/lobster 2026.9.5 → 2026.9.7

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 (163) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/index.js +8 -294
  3. package/node_modules/@clawdbot/lobster/README.md +20 -133
  4. package/node_modules/@clawdbot/lobster/VISION.md +15 -238
  5. package/node_modules/@clawdbot/lobster/bin/clawd.invoke.js +2 -21
  6. package/node_modules/@clawdbot/lobster/bin/invoke.js +19 -0
  7. package/node_modules/@clawdbot/lobster/bin/lobster.js +2 -21
  8. package/node_modules/@clawdbot/lobster/bin/openclaw.invoke.js +2 -24
  9. package/node_modules/@clawdbot/lobster/dist/src/cli.js +32 -48
  10. package/node_modules/@clawdbot/lobster/dist/src/cli.js.map +1 -1
  11. package/node_modules/@clawdbot/lobster/dist/src/command_tokens.js +81 -0
  12. package/node_modules/@clawdbot/lobster/dist/src/command_tokens.js.map +1 -0
  13. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/dedupe.js +1 -12
  14. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/dedupe.js.map +1 -1
  15. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/group_by.js +2 -14
  16. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/group_by.js.map +1 -1
  17. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/llm_invoke.js +1 -337
  18. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/llm_invoke.js.map +1 -1
  19. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/map.js +2 -13
  20. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/map.js.map +1 -1
  21. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/sort.js +4 -21
  22. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/sort.js.map +1 -1
  23. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/state.js +1 -1
  24. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/state.js.map +1 -1
  25. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/template.js +2 -13
  26. package/node_modules/@clawdbot/lobster/dist/src/commands/stdlib/template.js.map +1 -1
  27. package/node_modules/@clawdbot/lobster/dist/src/commands/workflows/workflows_run.js +0 -18
  28. package/node_modules/@clawdbot/lobster/dist/src/commands/workflows/workflows_run.js.map +1 -1
  29. package/node_modules/@clawdbot/lobster/dist/src/core/llm_accounting.js +304 -0
  30. package/node_modules/@clawdbot/lobster/dist/src/core/llm_accounting.js.map +1 -0
  31. package/node_modules/@clawdbot/lobster/dist/src/core/value_path.js +11 -0
  32. package/node_modules/@clawdbot/lobster/dist/src/core/value_path.js.map +1 -0
  33. package/node_modules/@clawdbot/lobster/dist/src/parser.js +2 -67
  34. package/node_modules/@clawdbot/lobster/dist/src/parser.js.map +1 -1
  35. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/index.js +1 -1
  36. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/pr-monitor.js +5 -64
  37. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/pr-monitor.js.map +1 -1
  38. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/read_pr.js +45 -0
  39. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/read_pr.js.map +1 -0
  40. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/snapshot.js +45 -0
  41. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/snapshot.js.map +1 -0
  42. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/stages/pr-view.js +9 -47
  43. package/node_modules/@clawdbot/lobster/dist/src/recipes/github/stages/pr-view.js.map +1 -1
  44. package/node_modules/@clawdbot/lobster/dist/src/sdk/Lobster.js +18 -135
  45. package/node_modules/@clawdbot/lobster/dist/src/sdk/Lobster.js.map +1 -1
  46. package/node_modules/@clawdbot/lobster/dist/src/sdk/index.js +1 -1
  47. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/approve.js +1 -2
  48. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/approve.js.map +1 -1
  49. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/diff.js +2 -8
  50. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/diff.js.map +1 -1
  51. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/exec.js +15 -81
  52. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/exec.js.map +1 -1
  53. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/state.js +3 -9
  54. package/node_modules/@clawdbot/lobster/dist/src/sdk/primitives/state.js.map +1 -1
  55. package/node_modules/@clawdbot/lobster/dist/src/sdk/runtime.js +0 -12
  56. package/node_modules/@clawdbot/lobster/dist/src/sdk/runtime.js.map +1 -1
  57. package/node_modules/@clawdbot/lobster/dist/src/sdk/state_env.js +6 -0
  58. package/node_modules/@clawdbot/lobster/dist/src/sdk/state_env.js.map +1 -0
  59. package/node_modules/@clawdbot/lobster/dist/src/state/atomic_file.js +192 -0
  60. package/node_modules/@clawdbot/lobster/dist/src/state/atomic_file.js.map +1 -0
  61. package/node_modules/@clawdbot/lobster/dist/src/state/store.js +2 -188
  62. package/node_modules/@clawdbot/lobster/dist/src/state/store.js.map +1 -1
  63. package/node_modules/@clawdbot/lobster/dist/src/workflows/dry_run.js +262 -0
  64. package/node_modules/@clawdbot/lobster/dist/src/workflows/dry_run.js.map +1 -0
  65. package/node_modules/@clawdbot/lobster/dist/src/workflows/expressions.js +345 -0
  66. package/node_modules/@clawdbot/lobster/dist/src/workflows/expressions.js.map +1 -0
  67. package/node_modules/@clawdbot/lobster/dist/src/workflows/file.js +21 -1036
  68. package/node_modules/@clawdbot/lobster/dist/src/workflows/file.js.map +1 -1
  69. package/node_modules/@clawdbot/lobster/dist/src/workflows/github_pr_monitor.js +8 -77
  70. package/node_modules/@clawdbot/lobster/dist/src/workflows/github_pr_monitor.js.map +1 -1
  71. package/node_modules/@clawdbot/lobster/dist/src/workflows/graph.js +1 -7
  72. package/node_modules/@clawdbot/lobster/dist/src/workflows/graph.js.map +1 -1
  73. package/node_modules/@clawdbot/lobster/dist/src/workflows/load.js +347 -0
  74. package/node_modules/@clawdbot/lobster/dist/src/workflows/load.js.map +1 -0
  75. package/node_modules/@clawdbot/lobster/dist/src/workflows/types.js +2 -0
  76. package/node_modules/@clawdbot/lobster/dist/src/workflows/types.js.map +1 -0
  77. package/node_modules/@clawdbot/lobster/dist/src/workflows/values.js +93 -0
  78. package/node_modules/@clawdbot/lobster/dist/src/workflows/values.js.map +1 -0
  79. package/node_modules/@clawdbot/lobster/dist/test/cancellation.test.js +1 -0
  80. package/node_modules/@clawdbot/lobster/dist/test/cancellation.test.js.map +1 -1
  81. package/node_modules/@clawdbot/lobster/dist/test/cli_run_errors.test.js +53 -0
  82. package/node_modules/@clawdbot/lobster/dist/test/cli_run_errors.test.js.map +1 -0
  83. package/node_modules/@clawdbot/lobster/dist/test/command_arguments.test.js +82 -0
  84. package/node_modules/@clawdbot/lobster/dist/test/command_arguments.test.js.map +1 -0
  85. package/node_modules/@clawdbot/lobster/dist/test/cost_tracker.test.js +49 -19
  86. package/node_modules/@clawdbot/lobster/dist/test/cost_tracker.test.js.map +1 -1
  87. package/node_modules/@clawdbot/lobster/dist/test/helpers/node_shell_fixture.js +17 -0
  88. package/node_modules/@clawdbot/lobster/dist/test/helpers/node_shell_fixture.js.map +1 -0
  89. package/node_modules/@clawdbot/lobster/dist/test/llm_invoke.test.js +2 -0
  90. package/node_modules/@clawdbot/lobster/dist/test/llm_invoke.test.js.map +1 -1
  91. package/node_modules/@clawdbot/lobster/dist/test/pipeline_resume_state.test.js +65 -0
  92. package/node_modules/@clawdbot/lobster/dist/test/pipeline_resume_state.test.js.map +1 -0
  93. package/node_modules/@clawdbot/lobster/dist/test/process_output_limit.test.js +5 -3
  94. package/node_modules/@clawdbot/lobster/dist/test/process_output_limit.test.js.map +1 -1
  95. package/node_modules/@clawdbot/lobster/dist/test/sdk_exec.test.js +72 -25
  96. package/node_modules/@clawdbot/lobster/dist/test/sdk_exec.test.js.map +1 -1
  97. package/node_modules/@clawdbot/lobster/dist/test/workflow_graph.test.js +1 -1
  98. package/node_modules/@clawdbot/lobster/dist/test/workflow_graph.test.js.map +1 -1
  99. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/README.md +1 -0
  100. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/SECURITY.md +62 -13
  101. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/index.js +40 -9
  102. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/lib/schemes.js +76 -16
  103. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/lib/utils.js +54 -10
  104. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/package.json +1 -1
  105. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/fixtures/uri-js-parse.json +1 -0
  106. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/ipv6-validation.test.js +130 -0
  107. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/mailto-authority-security.test.js +125 -0
  108. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/mailto-field-name-security.test.js +151 -0
  109. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/test/security-normalization.test.js +38 -0
  110. package/node_modules/@clawdbot/lobster/node_modules/fast-uri/types/index.d.ts +16 -0
  111. package/node_modules/@clawdbot/lobster/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +19 -18
  112. package/node_modules/@clawdbot/lobster/node_modules/yaml/browser/dist/nodes/Alias.js +25 -23
  113. package/node_modules/@clawdbot/lobster/node_modules/yaml/dist/compose/resolve-flow-scalar.js +19 -18
  114. package/node_modules/@clawdbot/lobster/node_modules/yaml/dist/nodes/Alias.js +25 -23
  115. package/node_modules/@clawdbot/lobster/node_modules/yaml/package.json +1 -1
  116. package/node_modules/@clawdbot/lobster/package.json +6 -8
  117. package/node_modules/typebox/build/compile/code.mjs +1 -2
  118. package/node_modules/typebox/build/compile/validator.mjs +5 -1
  119. package/node_modules/typebox/build/format/iri.mjs +16 -9
  120. package/node_modules/typebox/build/guard/emit.mjs +2 -2
  121. package/node_modules/typebox/build/guard/guard.d.mts +7 -5
  122. package/node_modules/typebox/build/guard/guard.mjs +14 -9
  123. package/node_modules/typebox/build/guard/index.mjs +6 -0
  124. package/node_modules/typebox/build/guard/unicode/unicode.d.mts +6 -0
  125. package/node_modules/typebox/build/guard/unicode/unicode.mjs +35 -0
  126. package/node_modules/typebox/build/guard/{string.mjs → unicode/unicode_segment.mjs} +16 -19
  127. package/node_modules/typebox/build/schema/build.mjs +2 -3
  128. package/node_modules/typebox/build/schema/engine/_pathing.d.mts +1 -0
  129. package/node_modules/typebox/build/schema/engine/_pathing.mjs +11 -0
  130. package/node_modules/typebox/build/schema/engine/_refine.mjs +13 -5
  131. package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +2 -1
  132. package/node_modules/typebox/build/schema/engine/dependencies.mjs +2 -1
  133. package/node_modules/typebox/build/schema/engine/dependentSchemas.mjs +2 -1
  134. package/node_modules/typebox/build/schema/engine/dynamicRef.d.mts +1 -1
  135. package/node_modules/typebox/build/schema/engine/dynamicRef.mjs +2 -2
  136. package/node_modules/typebox/build/schema/engine/format.mjs +9 -2
  137. package/node_modules/typebox/build/schema/engine/patternProperties.mjs +3 -2
  138. package/node_modules/typebox/build/schema/engine/properties.mjs +3 -2
  139. package/node_modules/typebox/build/schema/engine/propertyNames.mjs +2 -1
  140. package/node_modules/typebox/build/schema/engine/recursiveRef.d.mts +1 -1
  141. package/node_modules/typebox/build/schema/engine/recursiveRef.mjs +2 -2
  142. package/node_modules/typebox/build/schema/engine/ref.d.mts +1 -1
  143. package/node_modules/typebox/build/schema/engine/ref.mjs +2 -2
  144. package/node_modules/typebox/build/schema/engine/schema.mjs +24 -24
  145. package/node_modules/typebox/build/schema/parse.mjs +3 -0
  146. package/node_modules/typebox/build/schema/pointer/pointer.d.mts +1 -6
  147. package/node_modules/typebox/build/schema/pointer/pointer.mjs +47 -64
  148. package/node_modules/typebox/build/system/settings/internal.d.mts +2 -0
  149. package/node_modules/typebox/build/system/settings/internal.mjs +20 -0
  150. package/node_modules/typebox/build/system/settings/settings.d.mts +11 -0
  151. package/node_modules/typebox/build/system/settings/settings.mjs +14 -0
  152. package/node_modules/typebox/build/type/extends/inference.d.mts +1 -1
  153. package/node_modules/typebox/build/type/extends/inference.mjs +15 -2
  154. package/node_modules/typebox/build/type/extends/tuple.d.mts +2 -1
  155. package/node_modules/typebox/build/type/extends/tuple.mjs +21 -1
  156. package/node_modules/typebox/build/value/parse/parse.mjs +10 -4
  157. package/node_modules/typebox/package.json +1 -1
  158. package/node_modules/typebox/readme.md +3 -1
  159. package/package.json +6 -6
  160. package/dist/runtime-api.js +0 -3
  161. package/node_modules/@clawdbot/lobster/dist/src/sdk/token.js +0 -9
  162. package/node_modules/@clawdbot/lobster/dist/src/sdk/token.js.map +0 -1
  163. /package/node_modules/typebox/build/guard/{string.d.mts → unicode/unicode_segment.d.mts} +0 -0
@@ -0,0 +1,45 @@
1
+ function pickSubset(snapshot) {
2
+ if (!snapshot || typeof snapshot !== "object")
3
+ return null;
4
+ return {
5
+ number: snapshot.number,
6
+ title: snapshot.title,
7
+ url: snapshot.url,
8
+ state: snapshot.state,
9
+ isDraft: snapshot.isDraft,
10
+ mergeable: snapshot.mergeable,
11
+ reviewDecision: snapshot.reviewDecision,
12
+ updatedAt: snapshot.updatedAt,
13
+ baseRefName: snapshot.baseRefName,
14
+ headRefName: snapshot.headRefName,
15
+ };
16
+ }
17
+ export function buildPrChangeSummary(before, after) {
18
+ const a = pickSubset(after);
19
+ const b = pickSubset(before);
20
+ if (!a)
21
+ return { changedFields: [], changes: {} };
22
+ if (!b) {
23
+ return {
24
+ changedFields: Object.keys(a),
25
+ changes: Object.fromEntries(Object.keys(a).map((k) => [k, { from: null, to: a[k] }])),
26
+ };
27
+ }
28
+ const changes = {};
29
+ for (const key of Object.keys(a)) {
30
+ if (JSON.stringify(a[key]) !== JSON.stringify(b[key])) {
31
+ changes[key] = { from: b[key], to: a[key] };
32
+ }
33
+ }
34
+ return {
35
+ changedFields: Object.keys(changes),
36
+ changes,
37
+ };
38
+ }
39
+ export function formatPrChangeMessage({ repo, pr, changedFields, prInfo }) {
40
+ const fields = changedFields.length ? ` (${changedFields.join(", ")})` : "";
41
+ const title = prInfo?.title ? `: ${prInfo.title}` : "";
42
+ const url = prInfo?.url ? ` ${prInfo.url}` : "";
43
+ return `PR updated: ${repo}#${pr}${title}${fields}.${url}`.replace(/\s+/g, " ").trim();
44
+ }
45
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../src/recipes/github/snapshot.ts"],"names":[],"mappings":"AAAA,SAAS,UAAU,CAAC,QAAwC;IAC3D,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAAE,OAAO,IAAI,CAAC;IAC3D,OAAO;QACN,MAAM,EAAE,QAAQ,CAAC,MAAM;QACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,KAAK,EAAE,QAAQ,CAAC,KAAK;QACrB,OAAO,EAAE,QAAQ,CAAC,OAAO;QACzB,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,WAAW,EAAE,QAAQ,CAAC,WAAW;QACjC,WAAW,EAAE,QAAQ,CAAC,WAAW;KACjC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,oBAAoB,CACnC,MAAsC,EACtC,KAAqC;IAErC,MAAM,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAE7B,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,aAAa,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IAClD,IAAI,CAAC,CAAC,EAAE,CAAC;QACR,OAAO;YACN,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAC7B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACrF,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAmD,EAAE,CAAC;IACnE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YACvD,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7C,CAAC;IACF,CAAC;IAED,OAAO;QACN,aAAa,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;QACnC,OAAO;KACP,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;IACxE,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5E,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACvD,MAAM,GAAG,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,OAAO,eAAe,IAAI,IAAI,EAAE,GAAG,KAAK,GAAG,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;AACxF,CAAC"}
@@ -2,35 +2,14 @@
2
2
  * GitHub PR View Stage - Fetch PR details via gh CLI
3
3
  *
4
4
  * @example
5
- * import { Lobster } from 'lobster-sdk';
6
- * import { ghPrView } from 'lobster/recipes/github';
5
+ * import { Lobster } from '@clawdbot/lobster';
6
+ * import { ghPrView } from '@clawdbot/lobster/recipes/github';
7
7
  *
8
8
  * new Lobster()
9
9
  * .pipe(ghPrView({ repo: 'owner/repo', pr: 123 }))
10
10
  * .pipe(pr => console.log(pr.state));
11
11
  */
12
- import { runAbortableProcess } from "../../../abortable_process.js";
13
- /**
14
- * Run gh command
15
- * @param {string[]} argv
16
- * @param {Object} options
17
- * @returns {Promise<{stdout: string, stderr: string}>}
18
- */
19
- async function runGh(argv, { env, cwd, signal, forceTerminationSignal }) {
20
- const { stdout, stderr, code } = await runAbortableProcess({
21
- command: "gh",
22
- argv,
23
- env,
24
- cwd,
25
- signal,
26
- forceTerminationSignal,
27
- notFoundMessage: "gh not found on PATH (install GitHub CLI)",
28
- });
29
- if (code === 0) {
30
- return { stdout, stderr };
31
- }
32
- throw new Error(`gh failed (${code}): ${stderr.trim() || stdout.trim()}`);
33
- }
12
+ import { runGithubPr, parseGithubPr } from "../read_pr.js";
34
13
  /**
35
14
  * Create a GitHub PR view stage
36
15
  *
@@ -42,19 +21,6 @@ async function runGh(argv, { env, cwd, signal, forceTerminationSignal }) {
42
21
  */
43
22
  export function ghPrView(options) {
44
23
  const { repo, pr } = options;
45
- const fields = options.fields ?? [
46
- "number",
47
- "title",
48
- "url",
49
- "state",
50
- "isDraft",
51
- "mergeable",
52
- "reviewDecision",
53
- "author",
54
- "baseRefName",
55
- "headRefName",
56
- "updatedAt",
57
- ];
58
24
  if (!repo)
59
25
  throw new Error("ghPrView requires repo");
60
26
  if (!pr)
@@ -68,20 +34,16 @@ export function ghPrView(options) {
68
34
  for await (const _item of input) {
69
35
  // no-op
70
36
  }
71
- const argv = ["pr", "view", String(pr), "--repo", String(repo), "--json", fields.join(",")];
72
- const { stdout } = (await runGh(argv, {
37
+ const stdout = await runGithubPr({
38
+ repo,
39
+ pr,
40
+ fields: options.fields,
73
41
  env: ctx.env,
74
42
  cwd: process.cwd(),
75
43
  signal: ctx.signal,
76
44
  forceTerminationSignal: ctx.forceTerminationSignal,
77
- }));
78
- let parsed;
79
- try {
80
- parsed = JSON.parse(stdout.trim());
81
- }
82
- catch {
83
- throw new Error("gh returned non-JSON output");
84
- }
45
+ });
46
+ const parsed = parseGithubPr(stdout);
85
47
  return {
86
48
  output: (async function* () {
87
49
  yield parsed;
@@ -1 +1 @@
1
- {"version":3,"file":"pr-view.js","sourceRoot":"","sources":["../../../../../src/recipes/github/stages/pr-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE;;;;;GAKG;AACH,KAAK,UAAU,KAAK,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,sBAAsB,EAAE;IACtE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,mBAAmB,CAAC;QAC1D,OAAO,EAAE,IAAI;QACb,IAAI;QACJ,GAAG;QACH,GAAG;QACH,MAAM;QACN,sBAAsB;QACtB,eAAe,EAAE,2CAA2C;KAC5D,CAAC,CAAC;IACH,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAChB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAC3B,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,MAAM,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AAC3E,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAO;IAC/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI;QAChC,QAAQ;QACR,OAAO;QACP,KAAK;QACL,OAAO;QACP,SAAS;QACT,WAAW;QACX,gBAAgB;QAChB,QAAQ;QACR,aAAa;QACb,aAAa;QACb,WAAW;KACX,CAAC;IAEF,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEjD,OAAO;QACN,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,EAAE;QAEF,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACvB,cAAc;YACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBACjC,QAAQ;YACT,CAAC;YAED,MAAM,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YAE5F,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,EAAE;gBACrC,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;aAClD,CAAC,CAAQ,CAAC;YAEX,IAAI,MAAM,CAAC;YACX,IAAI,CAAC;gBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACpC,CAAC;YAAC,MAAM,CAAC;gBACR,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;YAChD,CAAC;YAED,OAAO;gBACN,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;oBACvB,MAAM,MAAM,CAAC;gBACd,CAAC,CAAC,EAAE;aACJ,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"pr-view.js","sourceRoot":"","sources":["../../../../../src/recipes/github/stages/pr-view.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAO;IAC/B,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC;IAE7B,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IACrD,IAAI,CAAC,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAEjD,OAAO;QACN,IAAI,EAAE,gBAAgB;QACtB,IAAI;QACJ,EAAE;QAEF,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACvB,cAAc;YACd,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;gBACjC,QAAQ;YACT,CAAC;YAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;gBAChC,IAAI;gBACJ,EAAE;gBACF,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,GAAG,EAAE,GAAG,CAAC,GAAG;gBACZ,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClB,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,sBAAsB,EAAE,GAAG,CAAC,sBAAsB;aAClD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YAErC,OAAO;gBACN,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;oBACvB,MAAM,MAAM,CAAC;gBACd,CAAC,CAAC,EAAE;aACJ,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,34 +1,13 @@
1
+ import { stateEnv } from "./state_env.js";
1
2
  import { randomUUID } from "node:crypto";
2
3
  import { runPipelineInternal } from "./runtime.js";
3
- import { encodeToken, decodeToken } from "./token.js";
4
+ import { encodeToken, decodeToken } from "../token.js";
4
5
  import { compileCached } from "../validation.js";
5
6
  import { validateCommandInputState } from "../input_request.js";
6
7
  import { deleteStateJson, readStateJsonWithLock, writeStateJson } from "../state/store.js";
7
- /**
8
- * @typedef {Object} LobsterResult
9
- * @property {boolean} ok - Whether the workflow completed successfully
10
- * @property {'ok' | 'needs_approval' | 'needs_input' | 'cancelled' | 'error'} status - Workflow status
11
- * @property {any[]} output - Output items from the workflow
12
- * @property {Object|null} requiresApproval - Approval request if halted
13
- * @property {string} [requiresApproval.prompt] - Approval prompt
14
- * @property {any[]} [requiresApproval.items] - Items pending approval
15
- * @property {string} [requiresApproval.resumeToken] - Token to resume workflow
16
- * @property {Object|null} requiresInput - Input request if halted
17
- * @property {string} [requiresInput.prompt] - Input prompt
18
- * @property {Object} [requiresInput.responseSchema] - JSON Schema for response
19
- * @property {any} [requiresInput.subject] - Subject shown to the human
20
- * @property {string} [requiresInput.resumeToken] - Token to resume workflow
21
- * @property {Object} [error] - Error details if failed
22
- */
23
- /**
24
- * @typedef {Object} LobsterOptions
25
- * @property {Object} [env] - Environment variables
26
- * @property {string} [stateDir] - State directory override
27
- * @property {AbortSignal} [signal] - Abort signal forwarded to pipeline stages
28
- */
29
8
  export class Lobster {
30
9
  #stages = [];
31
- #options = {};
10
+ #options;
32
11
  #meta = null;
33
12
  constructor(options = {}) {
34
13
  this.#options = {
@@ -52,6 +31,9 @@ export class Lobster {
52
31
  return this.#meta;
53
32
  }
54
33
  async run(initialInput = []) {
34
+ return this.#runStages(this.#stages, initialInput);
35
+ }
36
+ async #runStages(stages, initialInput, requestInputResume = undefined, stageOffset = 0, fallbackIndex = -1) {
55
37
  const ctx = {
56
38
  env: this.#options.env,
57
39
  stateDir: this.#options.stateDir,
@@ -60,9 +42,10 @@ export class Lobster {
60
42
  };
61
43
  try {
62
44
  const result = await runPipelineInternal({
63
- stages: this.#stages,
45
+ stages,
64
46
  ctx,
65
47
  input: initialInput,
48
+ requestInputResume,
66
49
  });
67
50
  if (result.halted &&
68
51
  result.items.length === 1 &&
@@ -71,8 +54,8 @@ export class Lobster {
71
54
  const resumeToken = encodeToken({
72
55
  protocolVersion: 1,
73
56
  v: 1,
74
- stageIndex: result.haltedAt?.index ?? -1,
75
- resumeAtIndex: (result.haltedAt?.index ?? -1) + 1,
57
+ stageIndex: stageOffset + (result.haltedAt?.index ?? fallbackIndex),
58
+ resumeAtIndex: stageOffset + (result.haltedAt?.index ?? fallbackIndex) + 1,
76
59
  items: approval.items,
77
60
  prompt: approval.prompt,
78
61
  });
@@ -92,8 +75,8 @@ export class Lobster {
92
75
  const input = result.items[0];
93
76
  const resumeMode = input.commandInput ? "same_stage" : "next_stage";
94
77
  const resumeAtIndex = resumeMode === "same_stage"
95
- ? (result.haltedAt?.index ?? -1)
96
- : (result.haltedAt?.index ?? -1) + 1;
78
+ ? stageOffset + (result.haltedAt?.index ?? fallbackIndex)
79
+ : stageOffset + (result.haltedAt?.index ?? fallbackIndex) + 1;
97
80
  const stateKey = resumeMode === "same_stage"
98
81
  ? await saveSdkCommandInputResumeState(this.#options, {
99
82
  resumeAtIndex,
@@ -106,7 +89,7 @@ export class Lobster {
106
89
  const resumeToken = encodeToken({
107
90
  protocolVersion: 1,
108
91
  v: 1,
109
- stageIndex: result.haltedAt?.index ?? -1,
92
+ stageIndex: stageOffset + (result.haltedAt?.index ?? fallbackIndex),
110
93
  resumeAtIndex,
111
94
  resumeMode,
112
95
  ...(resumeMode === "same_stage"
@@ -168,7 +151,7 @@ export class Lobster {
168
151
  }
169
152
  if (cancel === true) {
170
153
  if (payload.resumeMode === "same_stage") {
171
- await deleteStateJson({ env: sdkStateEnv(this.#options), key: payload.stateKey });
154
+ await deleteStateJson({ env: stateEnv(this.#options), key: payload.stateKey });
172
155
  }
173
156
  return {
174
157
  ok: true,
@@ -230,7 +213,7 @@ export class Lobster {
230
213
  state: sdkCommandInputState.commandInput,
231
214
  response,
232
215
  onConsumed: async () => {
233
- await deleteStateJson({ env: sdkStateEnv(this.#options), key: payload.stateKey });
216
+ await deleteStateJson({ env: stateEnv(this.#options), key: payload.stateKey });
234
217
  },
235
218
  };
236
219
  }
@@ -239,102 +222,7 @@ export class Lobster {
239
222
  }
240
223
  }
241
224
  const remainingStages = this.#stages.slice(resumeIndex);
242
- const ctx = {
243
- env: this.#options.env,
244
- stateDir: this.#options.stateDir,
245
- mode: "sdk",
246
- signal: this.#options.signal,
247
- };
248
- try {
249
- const result = await runPipelineInternal({
250
- stages: remainingStages,
251
- ctx,
252
- input: resumeItems,
253
- requestInputResume,
254
- });
255
- if (result.halted &&
256
- result.items.length === 1 &&
257
- result.items[0]?.type === "approval_request") {
258
- const approval = result.items[0];
259
- const resumeToken = encodeToken({
260
- protocolVersion: 1,
261
- v: 1,
262
- stageIndex: resumeIndex + (result.haltedAt?.index ?? 0),
263
- resumeAtIndex: resumeIndex + (result.haltedAt?.index ?? 0) + 1,
264
- items: approval.items,
265
- prompt: approval.prompt,
266
- });
267
- return {
268
- ok: true,
269
- status: "needs_approval",
270
- output: [],
271
- requiresApproval: {
272
- prompt: approval.prompt,
273
- items: approval.items,
274
- resumeToken,
275
- },
276
- requiresInput: null,
277
- };
278
- }
279
- if (result.halted && result.items.length === 1 && result.items[0]?.type === "input_request") {
280
- const input = result.items[0];
281
- const inputStageIndex = resumeIndex + (result.haltedAt?.index ?? 0);
282
- const resumeMode = input.commandInput ? "same_stage" : "next_stage";
283
- const stateKey = resumeMode === "same_stage"
284
- ? await saveSdkCommandInputResumeState(this.#options, {
285
- resumeAtIndex: inputStageIndex,
286
- items: input.items ?? [],
287
- inputSchema: input.responseSchema,
288
- ...(input.subject !== undefined ? { inputSubject: input.subject } : null),
289
- commandInput: input.commandInput,
290
- })
291
- : undefined;
292
- const resumeToken = encodeToken({
293
- protocolVersion: 1,
294
- v: 1,
295
- stageIndex: inputStageIndex,
296
- resumeAtIndex: resumeMode === "same_stage" ? inputStageIndex : inputStageIndex + 1,
297
- resumeMode,
298
- ...(resumeMode === "same_stage"
299
- ? { stateKey }
300
- : { items: [], inputSchema: input.responseSchema }),
301
- inputSubject: input.subject,
302
- });
303
- return {
304
- ok: true,
305
- status: "needs_input",
306
- output: [],
307
- requiresApproval: null,
308
- requiresInput: {
309
- prompt: input.prompt,
310
- responseSchema: input.responseSchema,
311
- defaults: input.defaults,
312
- subject: input.subject,
313
- resumeToken,
314
- },
315
- };
316
- }
317
- return {
318
- ok: true,
319
- status: "ok",
320
- output: result.items,
321
- requiresApproval: null,
322
- requiresInput: null,
323
- };
324
- }
325
- catch (err) {
326
- return {
327
- ok: false,
328
- status: "error",
329
- output: [],
330
- requiresApproval: null,
331
- requiresInput: null,
332
- error: {
333
- type: "runtime_error",
334
- message: err?.message ?? String(err),
335
- },
336
- };
337
- }
225
+ return this.#runStages(remainingStages, resumeItems, requestInputResume, resumeIndex, 0);
338
226
  }
339
227
  clone() {
340
228
  const cloned = new Lobster(this.#options);
@@ -376,19 +264,14 @@ function decodeSdkResumePayload(token) {
376
264
  throw new Error("Invalid token");
377
265
  return data;
378
266
  }
379
- function sdkStateEnv(options) {
380
- return options.stateDir
381
- ? { ...(options.env ?? process.env), LOBSTER_STATE_DIR: options.stateDir }
382
- : (options.env ?? process.env);
383
- }
384
267
  async function saveSdkCommandInputResumeState(options, state) {
385
268
  const stateKey = `sdk_resume_${randomUUID()}`;
386
- await writeStateJson({ env: sdkStateEnv(options), key: stateKey, value: state });
269
+ await writeStateJson({ env: stateEnv(options), key: stateKey, value: state });
387
270
  return stateKey;
388
271
  }
389
272
  async function loadSdkCommandInputResumeState(options, stateKey) {
390
273
  const stored = await readStateJsonWithLock({
391
- env: sdkStateEnv(options),
274
+ env: stateEnv(options),
392
275
  key: stateKey,
393
276
  signal: options?.signal,
394
277
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Lobster.js","sourceRoot":"","sources":["../../../src/sdk/Lobster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Lobster.js","sourceRoot":"","sources":["../../../src/sdk/Lobster.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Lobster SDK - Workflow runtime for AI agents
3
3
  *
4
4
  * @example
5
- * import { Lobster, approve, exec } from 'lobster-sdk';
5
+ * import { Lobster, approve, exec } from '@clawdbot/lobster';
6
6
  *
7
7
  * const workflow = new Lobster()
8
8
  * .pipe(exec('gh pr view 123 --repo owner/repo --json title,url'))
@@ -2,7 +2,7 @@
2
2
  * Approve primitive - Creates a hard halt point requiring human approval
3
3
  *
4
4
  * @example
5
- * import { Lobster, approve } from 'lobster-sdk';
5
+ * import { Lobster, approve } from '@clawdbot/lobster';
6
6
  *
7
7
  * new Lobster()
8
8
  * .pipe(fetchEmails())
@@ -24,7 +24,6 @@ export function approve(options = {}) {
24
24
  type: "approve",
25
25
  prompt,
26
26
  async run({ input, ctx: _ctx }) {
27
- // Collect all items
28
27
  const items = [];
29
28
  for await (const item of input) {
30
29
  items.push(item);
@@ -1 +1 @@
1
- {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../../src/sdk/primitives/approve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,OAAO,GAAQ,EAAE;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;IAE1C,OAAO;QACN,IAAI,EAAE,SAAS;QACf,MAAM;QAEN,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;YAC7B,oBAAoB;YACpB,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,qDAAqD;YACrD,OAAO;gBACN,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;oBACvB,MAAM;wBACL,IAAI,EAAE,kBAAkB;wBACxB,MAAM;wBACN,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;wBAC3B,SAAS,EAAE,KAAK,CAAC,MAAM;qBACvB,CAAC;gBACH,CAAC,CAAC,EAAE;aACJ,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"approve.js","sourceRoot":"","sources":["../../../../src/sdk/primitives/approve.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,MAAM,UAAU,OAAO,CAAC,OAAO,GAAQ,EAAE;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,UAAU,CAAC;IAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,KAAK,KAAK,CAAC;IAE1C,OAAO;QACN,IAAI,EAAE,SAAS;QACf,MAAM;QAEN,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,qDAAqD;YACrD,OAAO;gBACN,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;oBACvB,MAAM;wBACL,IAAI,EAAE,kBAAkB;wBACxB,MAAM;wBACN,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;wBAC3B,SAAS,EAAE,KAAK,CAAC,MAAM;qBACvB,CAAC;gBACH,CAAC,CAAC,EAAE;aACJ,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC"}
@@ -1,8 +1,9 @@
1
+ import { stateEnv } from "../state_env.js";
1
2
  /**
2
3
  * Diff primitive - Compare current value against last stored value
3
4
  *
4
5
  * @example
5
- * import { Lobster, diffLast } from 'lobster-sdk';
6
+ * import { Lobster, diffLast } from '@clawdbot/lobster';
6
7
  *
7
8
  * new Lobster()
8
9
  * .pipe(fetchPRStatus())
@@ -14,11 +15,6 @@
14
15
  * });
15
16
  */
16
17
  import { diffAndStore } from "../../state/store.js";
17
- function stateEnv(ctx) {
18
- return ctx?.stateDir
19
- ? { ...(ctx?.env ?? process.env), LOBSTER_STATE_DIR: ctx.stateDir }
20
- : (ctx?.env ?? process.env);
21
- }
22
18
  /**
23
19
  * Create a diff.last stage
24
20
  *
@@ -38,7 +34,6 @@ export function diffLast(key, options = {}) {
38
34
  type: "diff.last",
39
35
  key,
40
36
  async run({ input, ctx }) {
41
- // Collect all input items
42
37
  const items = [];
43
38
  for await (const item of input) {
44
39
  items.push(item);
@@ -50,7 +45,6 @@ export function diffLast(key, options = {}) {
50
45
  value,
51
46
  signal: ctx?.signal,
52
47
  });
53
- // Build result
54
48
  const result = {
55
49
  kind: "diff.last",
56
50
  key,
@@ -1 +1 @@
1
- {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/sdk/primitives/diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,SAAS,QAAQ,CAAC,GAAG;IACpB,OAAO,GAAG,EAAE,QAAQ;QACnB,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,iBAAiB,EAAE,GAAG,CAAC,QAAQ,EAAE;QACnE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAQ,EAAE;IAC9C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;IAEjD,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,GAAG;QAEH,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACvB,0BAA0B;YAC1B,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEpD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAAC;gBACrD,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;gBAClB,GAAG;gBACH,KAAK;gBACL,MAAM,EAAE,GAAG,EAAE,MAAM;aACnB,CAAC,CAAC;YAEH,eAAe;YACf,MAAM,MAAM,GAAG;gBACd,IAAI,EAAE,WAAW;gBACjB,GAAG;gBACH,OAAO;gBACP,MAAM;gBACN,KAAK;aACL,CAAC;YAEF,yDAAyD;YACzD,IAAI,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,OAAO;oBACN,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;wBACvB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBACpE,CAAC,CAAC,EAAE;iBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACN,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;oBACvB,MAAM,MAAM,CAAC;gBACd,CAAC,CAAC,EAAE;aACJ,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,GAAQ,EAAE;IAChE,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC"}
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../../../src/sdk/primitives/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAQ,EAAE;IAC9C,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAErD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,KAAK,IAAI,CAAC;IAEjD,OAAO;QACN,IAAI,EAAE,WAAW;QACjB,GAAG;QAEH,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE;YACvB,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBAChC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YAED,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAEpD,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,YAAY,CAAC;gBACrD,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;gBAClB,GAAG;gBACH,KAAK;gBACL,MAAM,EAAE,GAAG,EAAE,MAAM;aACnB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG;gBACd,IAAI,EAAE,WAAW;gBACjB,GAAG;gBACH,OAAO;gBACP,MAAM;gBACN,KAAK;aACL,CAAC;YAEF,yDAAyD;YACzD,IAAI,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;gBAC7B,OAAO;oBACN,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;wBACvB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;oBACpE,CAAC,CAAC,EAAE;iBACJ,CAAC;YACH,CAAC;YAED,OAAO;gBACN,MAAM,EAAE,CAAC,KAAK,SAAS,CAAC;oBACvB,MAAM,MAAM,CAAC;gBACd,CAAC,CAAC,EAAE;aACJ,CAAC;QACH,CAAC;KACD,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,GAAQ,EAAE;IAChE,OAAO,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9E,CAAC"}
@@ -1,80 +1,18 @@
1
+ import { tokenizeCommand } from "../../command_tokens.js";
1
2
  /**
2
3
  * Exec primitive - Execute shell commands and return JSON output
3
4
  *
4
5
  * @example
5
- * import { Lobster, exec } from 'lobster-sdk';
6
+ * import { Lobster, exec } from '@clawdbot/lobster';
6
7
  *
7
8
  * new Lobster()
8
9
  * .pipe(exec('gh pr view 123 --repo owner/repo --json title,url'))
9
10
  * .pipe(items => items.filter(e => e.unread))
10
11
  */
11
12
  import { runAbortableProcess } from "../../abortable_process.js";
12
- import { resolveInlineShellCommand } from "../../shell.js";
13
- /**
14
- * Run a process and capture output
15
- * @param {string} command
16
- * @param {string[]} argv
17
- * @param {Object} options
18
- * @returns {Promise<{stdout: string, stderr: string}>}
19
- */
20
- async function runProcess(command, argv, { env, cwd, signal, forceTerminationSignal }) {
21
- const { stdout, stderr, code } = await runAbortableProcess({
22
- command,
23
- argv,
24
- env,
25
- cwd,
26
- signal,
27
- forceTerminationSignal,
28
- notFoundMessage: `Failed to execute ${command}: spawn ${command} ENOENT`,
29
- });
30
- if (code === 0) {
31
- return { stdout, stderr };
32
- }
33
- throw new Error(`${command} exited with code ${code}: ${stderr.trim() || stdout.trim()}`);
34
- }
35
- /**
36
- * Parse a shell command string into command and arguments
37
- * Simple parsing - for complex cases, use options.shell
38
- * @param {string} cmdString
39
- * @returns {{command: string, args: string[]}}
40
- */
41
- function parseCommand(cmdString) {
42
- const tokens = [];
43
- let current = "";
44
- let quote = null;
45
- for (let i = 0; i < cmdString.length; i++) {
46
- const ch = cmdString[i];
47
- if (quote) {
48
- if (ch === "\\" && cmdString[i + 1]) {
49
- current += cmdString[i + 1];
50
- i++;
51
- continue;
52
- }
53
- if (ch === quote) {
54
- quote = null;
55
- continue;
56
- }
57
- current += ch;
58
- continue;
59
- }
60
- if (ch === '"' || ch === "'") {
61
- quote = ch;
62
- continue;
63
- }
64
- if (ch === " " || ch === "\t") {
65
- if (current.length > 0) {
66
- tokens.push(current);
67
- current = "";
68
- }
69
- continue;
70
- }
71
- current += ch;
72
- }
73
- if (current.length > 0) {
74
- tokens.push(current);
75
- }
76
- const [command, ...args] = tokens;
77
- return { command, args };
13
+ function parseCommand(command) {
14
+ const [executable, ...argv] = tokenizeCommand(command, "sdk");
15
+ return { command: executable, argv };
78
16
  }
79
17
  /**
80
18
  * Create an exec stage
@@ -99,24 +37,20 @@ export function exec(cmdString, options = {}) {
99
37
  // no-op
100
38
  }
101
39
  const env = ctx.env ?? process.env;
102
- let stdout;
103
- const processOptions = {
40
+ const invocation = useShell ? { shellCommand: cmdString } : parseCommand(cmdString);
41
+ const command = "command" in invocation ? invocation.command : cmdString;
42
+ const { stdout, stderr, code } = await runAbortableProcess({
43
+ ...invocation,
104
44
  env,
105
45
  cwd,
106
46
  signal: ctx.signal,
107
47
  forceTerminationSignal: ctx.forceTerminationSignal,
108
- };
109
- if (useShell) {
110
- // Shell execution
111
- const shell = resolveInlineShellCommand({ command: cmdString, env });
112
- const result = await runProcess(shell.command, shell.argv, processOptions);
113
- stdout = result.stdout;
114
- }
115
- else {
116
- // Direct execution
117
- const { command, args } = parseCommand(cmdString);
118
- const result = await runProcess(command, args, processOptions);
119
- stdout = result.stdout;
48
+ notFoundMessage: useShell
49
+ ? "exec shell not found; check LOBSTER_SHELL or ComSpec"
50
+ : `Failed to execute ${command}: spawn ${command} ENOENT`,
51
+ });
52
+ if (code !== 0) {
53
+ throw new Error(`${command} exited with code ${code}: ${stderr.trim() || stdout.trim()}`);
120
54
  }
121
55
  // Parse output
122
56
  let output;