@mandible-ai/mandible 0.3.14 → 0.5.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.
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/providers/index.d.ts +2 -0
- package/dist/src/providers/index.d.ts.map +1 -1
- package/dist/src/providers/index.js +2 -0
- package/dist/src/providers/index.js.map +1 -1
- package/dist/src/providers/openhands.d.ts +108 -0
- package/dist/src/providers/openhands.d.ts.map +1 -0
- package/dist/src/providers/openhands.js +272 -0
- package/dist/src/providers/openhands.js.map +1 -0
- package/package.json +1 -1
package/dist/src/index.d.ts
CHANGED
|
@@ -37,7 +37,9 @@ export { withStructuredOutput } from './providers/structured-output.js';
|
|
|
37
37
|
export { withLLM } from './providers/llm.js';
|
|
38
38
|
export { withBash } from './providers/bash.js';
|
|
39
39
|
export { withOpenCode } from './providers/opencode.js';
|
|
40
|
+
export { withOpenHands, OpenHandsError } from './providers/openhands.js';
|
|
40
41
|
export { assembleContext, withContext } from './providers/context.js';
|
|
41
42
|
export type { ActionHandler, ClaudeCodeConfig, AgentResult, BedrockConfig, StructuredOutputConfig, LLMConfig, BashProviderConfig, LLMCallFunction, SignalDeposit, OutputMapping, ContextAssemblyConfig, } from './providers/types.js';
|
|
42
43
|
export type { OpenCodeConfig, OpenCodeResult } from './providers/opencode.js';
|
|
44
|
+
export type { OpenHandsConfig, OpenHandsResult, OpenHandsEvent, OpenHandsErrorCode } from './providers/openhands.js';
|
|
43
45
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -44,5 +44,6 @@ export { withStructuredOutput } from './providers/structured-output.js';
|
|
|
44
44
|
export { withLLM } from './providers/llm.js';
|
|
45
45
|
export { withBash } from './providers/bash.js';
|
|
46
46
|
export { withOpenCode } from './providers/opencode.js';
|
|
47
|
+
export { withOpenHands, OpenHandsError } from './providers/openhands.js';
|
|
47
48
|
export { assembleContext, withContext } from './providers/context.js';
|
|
48
49
|
//# sourceMappingURL=index.js.map
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wBAAwB;AACxB,+DAA+D;AAsC/D,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,qDAAqD;AACrD,qDAAqD;AACrD,gFAAgF;AAChF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGvD,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,aAAa;AACb,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvG,uBAAuB;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,kCAAkC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,sCAAsC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG5F,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,wBAAwB;AACxB,+DAA+D;AAsC/D,mBAAmB;AACnB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,SAAS,EACT,cAAc,EACd,UAAU,GACX,MAAM,kBAAkB,CAAC;AAE1B,uBAAuB;AACvB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAExC,aAAa;AACb,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,iBAAiB;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,qDAAqD;AACrD,qDAAqD;AACrD,gFAAgF;AAChF,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGvD,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAEhD,eAAe;AACf,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAG5C,aAAa;AACb,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEvG,uBAAuB;AACvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AAGnE,mBAAmB;AACnB,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,kCAAkC;AAClC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAE/B,sCAAsC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAGxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGhD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG5F,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -10,6 +10,8 @@ export { withQwenCode } from './qwen-code.js';
|
|
|
10
10
|
export type { QwenCodeConfig, QwenCodeResult } from './qwen-code.js';
|
|
11
11
|
export { withOpenCode } from './opencode.js';
|
|
12
12
|
export type { OpenCodeConfig, OpenCodeResult } from './opencode.js';
|
|
13
|
+
export { withOpenHands, OpenHandsError } from './openhands.js';
|
|
14
|
+
export type { OpenHandsConfig, OpenHandsResult, OpenHandsEvent, OpenHandsErrorCode } from './openhands.js';
|
|
13
15
|
export { withSkill, loadSkills, loadSkill, parseFrontmatter } from './skill.js';
|
|
14
16
|
export type { SkillConfig, Skill, SkillMeta } from './skill.js';
|
|
15
17
|
export { assembleContext, withContext } from './context.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG5D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGrC,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,SAAS,GACV,MAAM,WAAW,CAAC;AACnB,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG3D,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,aAAa,EACb,SAAS,GACV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrE,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAGpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/D,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAG3G,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAChF,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAG5D,YAAY,EACV,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,sBAAsB,EACtB,kBAAkB,EAClB,SAAS,EACT,eAAe,EACf,aAAa,EACb,aAAa,EACb,qBAAqB,GACtB,MAAM,YAAY,CAAC"}
|
|
@@ -11,6 +11,8 @@ export { withToolLoop, fileReadTool, fileWriteTool, fileEditTool, bashTool, glob
|
|
|
11
11
|
export { withQwenCode } from './qwen-code.js';
|
|
12
12
|
// OpenCode agent wrapper (provider-agnostic agentic coding)
|
|
13
13
|
export { withOpenCode } from './opencode.js';
|
|
14
|
+
// OpenHands agent wrapper (sandboxed agentic coding for CI/DevOps)
|
|
15
|
+
export { withOpenHands, OpenHandsError } from './openhands.js';
|
|
14
16
|
// Skill-based colony provider
|
|
15
17
|
export { withSkill, loadSkills, loadSkill, parseFrontmatter } from './skill.js';
|
|
16
18
|
// Context assembly
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,iCAAiC;AACjC,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,SAAS,GACV,MAAM,WAAW,CAAC;AAGnB,oDAAoD;AACpD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,gBAAgB,CAAC;AASxB,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhF,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/index.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,iCAAiC;AACjC,OAAO,EACL,YAAY,EACZ,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,SAAS,GACV,MAAM,WAAW,CAAC;AAGnB,oDAAoD;AACpD,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,GACZ,MAAM,gBAAgB,CAAC;AASxB,sDAAsD;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,4DAA4D;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG7C,mEAAmE;AACnE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG/D,8BAA8B;AAC9B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhF,mBAAmB;AACnB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { Signal } from '../core/types.js';
|
|
2
|
+
import type { ActionHandler, OutputMapping } from './types.js';
|
|
3
|
+
export interface OpenHandsConfig<T = Record<string, unknown>> {
|
|
4
|
+
/**
|
|
5
|
+
* OpenHands agent server URL.
|
|
6
|
+
* Default: 'http://localhost:3001'.
|
|
7
|
+
*/
|
|
8
|
+
serverUrl?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Git repository URL for the sandbox.
|
|
11
|
+
* Can be a static string or derived from the signal.
|
|
12
|
+
*/
|
|
13
|
+
repository?: string | ((signal: Signal<T>) => string);
|
|
14
|
+
/**
|
|
15
|
+
* Build the prompt from the incoming signal.
|
|
16
|
+
* Can be a static string, or a function that receives the signal.
|
|
17
|
+
*
|
|
18
|
+
* For context assembly, capture the environment in a closure:
|
|
19
|
+
* prompt: async (signal) => {
|
|
20
|
+
* const ctx = await assembleContext(signal, env, { includeLineage: true });
|
|
21
|
+
* return `${ctx}\n\nInvestigate this CI failure:\n${signal.payload.logs}`;
|
|
22
|
+
* }
|
|
23
|
+
*/
|
|
24
|
+
prompt: string | ((signal: Signal<T>) => string | Promise<string>);
|
|
25
|
+
/**
|
|
26
|
+
* Working directory for the OpenHands sandbox.
|
|
27
|
+
* Can be static or derived from the signal.
|
|
28
|
+
*/
|
|
29
|
+
workingDirectory?: string | ((signal: Signal<T>) => string);
|
|
30
|
+
/**
|
|
31
|
+
* Git branch to check out in the sandbox.
|
|
32
|
+
* Can be static or derived from the signal.
|
|
33
|
+
*/
|
|
34
|
+
selectedBranch?: string | ((signal: Signal<T>) => string);
|
|
35
|
+
/**
|
|
36
|
+
* System-level instructions for the OpenHands agent.
|
|
37
|
+
* Sent as `conversation_instructions` in the create body.
|
|
38
|
+
*/
|
|
39
|
+
conversationInstructions?: string;
|
|
40
|
+
/**
|
|
41
|
+
* Maximum iterations the agent can take. Default: 50.
|
|
42
|
+
*/
|
|
43
|
+
maxIterations?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Timeout in ms for the entire conversation. Default: 900_000 (15 min).
|
|
46
|
+
* CI investigation can take a while — reproducing failures, installing deps, running tests.
|
|
47
|
+
*/
|
|
48
|
+
timeout?: number;
|
|
49
|
+
/**
|
|
50
|
+
* Event callback for observability.
|
|
51
|
+
* Called with events fetched from the conversation events endpoint.
|
|
52
|
+
* Errors in this callback are caught and do not crash the agent.
|
|
53
|
+
*/
|
|
54
|
+
onEvent?: (event: OpenHandsEvent) => void;
|
|
55
|
+
/** Map output to signal deposits. */
|
|
56
|
+
output?: OutputMapping<T>;
|
|
57
|
+
/** Auto-withdraw the triggering signal. Default: true. */
|
|
58
|
+
autoWithdraw?: boolean;
|
|
59
|
+
}
|
|
60
|
+
/** Event from the OpenHands conversation events endpoint. */
|
|
61
|
+
export interface OpenHandsEvent {
|
|
62
|
+
id: number;
|
|
63
|
+
source: 'agent' | 'user' | 'environment';
|
|
64
|
+
action?: string;
|
|
65
|
+
observation?: string;
|
|
66
|
+
message?: string;
|
|
67
|
+
args?: Record<string, unknown>;
|
|
68
|
+
content?: string;
|
|
69
|
+
extras?: Record<string, unknown>;
|
|
70
|
+
timestamp?: string;
|
|
71
|
+
}
|
|
72
|
+
/** Result of an OpenHands agent conversation. */
|
|
73
|
+
export interface OpenHandsResult {
|
|
74
|
+
/** Final status of the conversation. */
|
|
75
|
+
status: 'finished' | 'error' | 'timeout' | 'stopped';
|
|
76
|
+
/** Summary text from the agent's final message. */
|
|
77
|
+
text: string;
|
|
78
|
+
/** Conversation ID for debugging/tracing. */
|
|
79
|
+
conversationId: string;
|
|
80
|
+
/** Wall-clock duration in ms. */
|
|
81
|
+
durationMs: number;
|
|
82
|
+
/** Events received during the conversation. */
|
|
83
|
+
events: OpenHandsEvent[];
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates an action handler powered by the OpenHands local self-hosted API.
|
|
87
|
+
*
|
|
88
|
+
* OpenHands provides sandboxed terminal access inside Docker containers,
|
|
89
|
+
* which is ideal for CI investigation tasks that need to:
|
|
90
|
+
* - Fetch and parse CI logs
|
|
91
|
+
* - Reproduce build failures in isolation
|
|
92
|
+
* - Install dependencies and run tests
|
|
93
|
+
* - Propose fixes without affecting the host
|
|
94
|
+
*
|
|
95
|
+
* Local API Lifecycle:
|
|
96
|
+
* 1. POST /api/conversations — create conversation
|
|
97
|
+
* 2. POST /api/conversations/{id}/message — send user prompt
|
|
98
|
+
* 3. GET /api/conversations/{id} — poll until STOPPED
|
|
99
|
+
* 4. GET /api/conversations/{id}/events — fetch agent events
|
|
100
|
+
* 5. DELETE /api/conversations/{id} — cleanup
|
|
101
|
+
*/
|
|
102
|
+
export declare function withOpenHands<T = Record<string, unknown>>(config: OpenHandsConfig<T>): ActionHandler<T>;
|
|
103
|
+
export type OpenHandsErrorCode = 'CONVERSATION_CREATE_FAILED' | 'MESSAGE_SEND_FAILED' | 'CONNECTION_FAILED' | 'TIMEOUT';
|
|
104
|
+
export declare class OpenHandsError extends Error {
|
|
105
|
+
readonly code: OpenHandsErrorCode;
|
|
106
|
+
constructor(code: OpenHandsErrorCode, message: string);
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=openhands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openhands.d.ts","sourceRoot":"","sources":["../../../src/providers/openhands.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAM9E,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAC1D;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IAEtD;;;;;;;;;OASG;IACH,MAAM,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAEnE;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IAE5D;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,CAAC;IAE1D;;;OAGG;IACH,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAElC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC;IAE1C,qCAAqC;IACrC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE1B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAMD,6DAA6D;AAC7D,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,aAAa,CAAC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,WAAW,eAAe;IAC9B,wCAAwC;IACxC,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,mDAAmD;IACnD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,+CAA+C;IAC/C,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B;AAMD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,aAAa,CAAC,CAAC,CAAC,CA4JlB;AAyMD,MAAM,MAAM,kBAAkB,GAC1B,4BAA4B,GAC5B,qBAAqB,GACrB,mBAAmB,GACnB,SAAS,CAAC;AAEd,qBAAa,cAAe,SAAQ,KAAK;aAErB,IAAI,EAAE,kBAAkB;gBAAxB,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM;CAKlB"}
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
// PURPOSE: withOpenHands — Sandboxed agentic coding via OpenHands local self-hosted API.
|
|
2
|
+
// PURPOSE: REST client targeting /api/conversations for CI investigation and DevOps tasks.
|
|
3
|
+
// ----------------------------------------------------------
|
|
4
|
+
// Provider factory
|
|
5
|
+
// ----------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* Creates an action handler powered by the OpenHands local self-hosted API.
|
|
8
|
+
*
|
|
9
|
+
* OpenHands provides sandboxed terminal access inside Docker containers,
|
|
10
|
+
* which is ideal for CI investigation tasks that need to:
|
|
11
|
+
* - Fetch and parse CI logs
|
|
12
|
+
* - Reproduce build failures in isolation
|
|
13
|
+
* - Install dependencies and run tests
|
|
14
|
+
* - Propose fixes without affecting the host
|
|
15
|
+
*
|
|
16
|
+
* Local API Lifecycle:
|
|
17
|
+
* 1. POST /api/conversations — create conversation
|
|
18
|
+
* 2. POST /api/conversations/{id}/message — send user prompt
|
|
19
|
+
* 3. GET /api/conversations/{id} — poll until STOPPED
|
|
20
|
+
* 4. GET /api/conversations/{id}/events — fetch agent events
|
|
21
|
+
* 5. DELETE /api/conversations/{id} — cleanup
|
|
22
|
+
*/
|
|
23
|
+
export function withOpenHands(config) {
|
|
24
|
+
const { serverUrl = 'http://localhost:3001', repository, prompt, workingDirectory, selectedBranch, conversationInstructions, maxIterations = 50, timeout = 900_000, onEvent, output, autoWithdraw = true, } = config;
|
|
25
|
+
return async (signal, ctx) => {
|
|
26
|
+
const startTime = Date.now();
|
|
27
|
+
const baseUrl = serverUrl.replace(/\/$/, '');
|
|
28
|
+
const headers = {
|
|
29
|
+
'Content-Type': 'application/json',
|
|
30
|
+
};
|
|
31
|
+
// Resolve dynamic config fields
|
|
32
|
+
const resolvedPrompt = typeof prompt === 'function'
|
|
33
|
+
? await prompt(signal)
|
|
34
|
+
: prompt;
|
|
35
|
+
const cwd = typeof workingDirectory === 'function'
|
|
36
|
+
? workingDirectory(signal)
|
|
37
|
+
: workingDirectory;
|
|
38
|
+
const repo = typeof repository === 'function'
|
|
39
|
+
? repository(signal)
|
|
40
|
+
: repository;
|
|
41
|
+
const branch = typeof selectedBranch === 'function'
|
|
42
|
+
? selectedBranch(signal)
|
|
43
|
+
: selectedBranch;
|
|
44
|
+
const events = [];
|
|
45
|
+
let conversationId;
|
|
46
|
+
try {
|
|
47
|
+
// 1. Create conversation
|
|
48
|
+
const createBody = {
|
|
49
|
+
max_iterations: maxIterations,
|
|
50
|
+
};
|
|
51
|
+
if (repo !== undefined)
|
|
52
|
+
createBody.repository = repo;
|
|
53
|
+
if (resolvedPrompt)
|
|
54
|
+
createBody.initial_user_msg = resolvedPrompt;
|
|
55
|
+
if (branch !== undefined)
|
|
56
|
+
createBody.selected_branch = branch;
|
|
57
|
+
if (conversationInstructions !== undefined)
|
|
58
|
+
createBody.conversation_instructions = conversationInstructions;
|
|
59
|
+
const createRes = await fetchWithTimeout(`${baseUrl}/api/conversations`, { method: 'POST', headers, body: JSON.stringify(createBody) }, 30_000);
|
|
60
|
+
if (!createRes.ok) {
|
|
61
|
+
const errorText = await createRes.text().catch(() => 'unknown error');
|
|
62
|
+
throw new OpenHandsError('CONVERSATION_CREATE_FAILED', `Failed to create OpenHands conversation: ${createRes.status} ${truncate(errorText, 500)}`);
|
|
63
|
+
}
|
|
64
|
+
const createData = await createRes.json();
|
|
65
|
+
conversationId = createData.conversation_id;
|
|
66
|
+
if (!conversationId) {
|
|
67
|
+
throw new OpenHandsError('CONVERSATION_CREATE_FAILED', 'OpenHands returned no conversation ID');
|
|
68
|
+
}
|
|
69
|
+
ctx.log(`OpenHands conversation ${conversationId} created`);
|
|
70
|
+
// 2. Send user prompt as message
|
|
71
|
+
const messageRes = await fetchWithTimeout(`${baseUrl}/api/conversations/${conversationId}/message`, {
|
|
72
|
+
method: 'POST',
|
|
73
|
+
headers,
|
|
74
|
+
body: JSON.stringify({ message: resolvedPrompt }),
|
|
75
|
+
}, 30_000);
|
|
76
|
+
if (!messageRes.ok) {
|
|
77
|
+
const errorText = await messageRes.text().catch(() => 'unknown error');
|
|
78
|
+
throw new OpenHandsError('MESSAGE_SEND_FAILED', `Failed to send message to conversation ${conversationId}: ${messageRes.status} ${truncate(errorText, 500)}`);
|
|
79
|
+
}
|
|
80
|
+
ctx.log(`Message sent to conversation ${conversationId}`);
|
|
81
|
+
// 3. Poll for completion
|
|
82
|
+
const finalStatus = await pollForCompletion(baseUrl, conversationId, headers, timeout, onEvent, events, ctx);
|
|
83
|
+
// 4. Fetch events
|
|
84
|
+
await fetchEvents(baseUrl, conversationId, headers, events, onEvent, ctx);
|
|
85
|
+
const durationMs = Date.now() - startTime;
|
|
86
|
+
// Extract result text from events or conversation data
|
|
87
|
+
const resultText = extractResultText(events, finalStatus);
|
|
88
|
+
const openHandsResult = {
|
|
89
|
+
status: finalStatus,
|
|
90
|
+
text: resultText,
|
|
91
|
+
conversationId,
|
|
92
|
+
durationMs,
|
|
93
|
+
events,
|
|
94
|
+
};
|
|
95
|
+
ctx.log(`OpenHands ${finalStatus} in ${durationMs}ms ` +
|
|
96
|
+
`(conversation=${conversationId}, events=${events.length})`);
|
|
97
|
+
// 5. Deposit output signals
|
|
98
|
+
const deposits = resolveOutput(output, openHandsResult, signal);
|
|
99
|
+
for (const deposit of deposits) {
|
|
100
|
+
await ctx.deposit(deposit.type, deposit.payload ?? { ...openHandsResult }, {
|
|
101
|
+
causedBy: [signal.id],
|
|
102
|
+
tags: deposit.tags,
|
|
103
|
+
ttl: deposit.ttl,
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
// 6. Auto-withdraw
|
|
107
|
+
if (autoWithdraw) {
|
|
108
|
+
await ctx.withdraw(signal.id);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
// Always cleanup the conversation
|
|
113
|
+
if (conversationId) {
|
|
114
|
+
await fetchWithTimeout(`${baseUrl}/api/conversations/${conversationId}`, { method: 'DELETE', headers }, 10_000).catch(() => { });
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
// ----------------------------------------------------------
|
|
120
|
+
// Completion polling
|
|
121
|
+
// ----------------------------------------------------------
|
|
122
|
+
/**
|
|
123
|
+
* Poll the conversation status until it reaches a terminal state.
|
|
124
|
+
* The local API uses `status` (RUNNING/STOPPED) and `runtime_status`.
|
|
125
|
+
*/
|
|
126
|
+
async function pollForCompletion(baseUrl, conversationId, headers, timeout, onEvent, events, ctx) {
|
|
127
|
+
const deadline = Date.now() + timeout;
|
|
128
|
+
const pollInterval = 3_000;
|
|
129
|
+
let lastStatus = '';
|
|
130
|
+
while (Date.now() < deadline) {
|
|
131
|
+
const res = await fetchWithTimeout(`${baseUrl}/api/conversations/${conversationId}`, { method: 'GET', headers }, 10_000).catch(() => null);
|
|
132
|
+
if (res?.ok) {
|
|
133
|
+
const data = await res.json().catch((err) => {
|
|
134
|
+
ctx.log(`Warning: failed to parse poll response: ${err.message}`, 'warn');
|
|
135
|
+
return {};
|
|
136
|
+
});
|
|
137
|
+
const status = data.status;
|
|
138
|
+
const runtimeStatus = data.runtime_status;
|
|
139
|
+
// Emit synthetic event on status change
|
|
140
|
+
const currentStatus = `${status}:${runtimeStatus}`;
|
|
141
|
+
if (currentStatus !== lastStatus) {
|
|
142
|
+
lastStatus = currentStatus;
|
|
143
|
+
const event = {
|
|
144
|
+
id: events.length + 1,
|
|
145
|
+
source: 'environment',
|
|
146
|
+
observation: 'status_change',
|
|
147
|
+
message: `status=${status} runtime_status=${runtimeStatus}`,
|
|
148
|
+
timestamp: new Date().toISOString(),
|
|
149
|
+
};
|
|
150
|
+
events.push(event);
|
|
151
|
+
if (onEvent) {
|
|
152
|
+
try {
|
|
153
|
+
onEvent(event);
|
|
154
|
+
}
|
|
155
|
+
catch { /* swallow callback errors */ }
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// STOPPED is the terminal state for the local API
|
|
159
|
+
if (status === 'STOPPED') {
|
|
160
|
+
return 'finished';
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
await sleep(pollInterval);
|
|
164
|
+
}
|
|
165
|
+
return 'timeout';
|
|
166
|
+
}
|
|
167
|
+
// ----------------------------------------------------------
|
|
168
|
+
// Events fetching
|
|
169
|
+
// ----------------------------------------------------------
|
|
170
|
+
/**
|
|
171
|
+
* Fetch all events from the conversation events endpoint.
|
|
172
|
+
*/
|
|
173
|
+
async function fetchEvents(baseUrl, conversationId, headers, events, onEvent, ctx) {
|
|
174
|
+
const res = await fetchWithTimeout(`${baseUrl}/api/conversations/${conversationId}/events`, { method: 'GET', headers }, 30_000).catch(() => null);
|
|
175
|
+
if (!res?.ok) {
|
|
176
|
+
ctx.log(`Warning: failed to fetch events for conversation ${conversationId}`, 'warn');
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
const data = await res.json().catch(() => []);
|
|
180
|
+
for (let i = 0; i < data.length; i++) {
|
|
181
|
+
const raw = data[i];
|
|
182
|
+
const event = {
|
|
183
|
+
id: events.length + 1,
|
|
184
|
+
source: raw.source ?? 'agent',
|
|
185
|
+
action: raw.action,
|
|
186
|
+
observation: raw.observation,
|
|
187
|
+
message: raw.message,
|
|
188
|
+
args: raw.args,
|
|
189
|
+
content: raw.content,
|
|
190
|
+
extras: raw.extras,
|
|
191
|
+
timestamp: raw.timestamp,
|
|
192
|
+
};
|
|
193
|
+
events.push(event);
|
|
194
|
+
if (onEvent) {
|
|
195
|
+
try {
|
|
196
|
+
onEvent(event);
|
|
197
|
+
}
|
|
198
|
+
catch { /* swallow callback errors */ }
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
// ----------------------------------------------------------
|
|
203
|
+
// Result text extraction
|
|
204
|
+
// ----------------------------------------------------------
|
|
205
|
+
/**
|
|
206
|
+
* Extract the best result text from the collected events.
|
|
207
|
+
* Falls back to a status-based message.
|
|
208
|
+
*/
|
|
209
|
+
function extractResultText(events, status) {
|
|
210
|
+
// Walk events in reverse looking for the last agent message
|
|
211
|
+
for (let i = events.length - 1; i >= 0; i--) {
|
|
212
|
+
const event = events[i];
|
|
213
|
+
if (event.source === 'agent' && event.message) {
|
|
214
|
+
return event.message;
|
|
215
|
+
}
|
|
216
|
+
if (event.source === 'agent' && event.content) {
|
|
217
|
+
return event.content;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// Fallback
|
|
221
|
+
if (status === 'timeout')
|
|
222
|
+
return 'Agent timed out';
|
|
223
|
+
if (status === 'error')
|
|
224
|
+
return 'Agent encountered an error';
|
|
225
|
+
return '';
|
|
226
|
+
}
|
|
227
|
+
// ----------------------------------------------------------
|
|
228
|
+
// Helpers
|
|
229
|
+
// ----------------------------------------------------------
|
|
230
|
+
/** fetch() with AbortSignal.timeout. */
|
|
231
|
+
async function fetchWithTimeout(url, init, timeoutMs) {
|
|
232
|
+
return fetch(url, {
|
|
233
|
+
...init,
|
|
234
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
235
|
+
});
|
|
236
|
+
}
|
|
237
|
+
function sleep(ms) {
|
|
238
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
239
|
+
}
|
|
240
|
+
/** Truncate a string to a max length. */
|
|
241
|
+
function truncate(str, maxLen) {
|
|
242
|
+
if (str.length <= maxLen)
|
|
243
|
+
return str;
|
|
244
|
+
return str.slice(0, maxLen) + '...';
|
|
245
|
+
}
|
|
246
|
+
// ----------------------------------------------------------
|
|
247
|
+
// Output mapping (same 3-pattern as withClaudeCode/withBash)
|
|
248
|
+
// ----------------------------------------------------------
|
|
249
|
+
function resolveOutput(output, result, signal) {
|
|
250
|
+
if (!output) {
|
|
251
|
+
return [{ type: `${signal.type}:completed`, payload: result }];
|
|
252
|
+
}
|
|
253
|
+
if (typeof output === 'function') {
|
|
254
|
+
const mapped = output(result, signal);
|
|
255
|
+
return Array.isArray(mapped) ? mapped : [mapped];
|
|
256
|
+
}
|
|
257
|
+
return [{
|
|
258
|
+
type: output.type,
|
|
259
|
+
payload: result,
|
|
260
|
+
tags: output.tags,
|
|
261
|
+
ttl: output.ttl,
|
|
262
|
+
}];
|
|
263
|
+
}
|
|
264
|
+
export class OpenHandsError extends Error {
|
|
265
|
+
code;
|
|
266
|
+
constructor(code, message) {
|
|
267
|
+
super(message);
|
|
268
|
+
this.code = code;
|
|
269
|
+
this.name = 'OpenHandsError';
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
//# sourceMappingURL=openhands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openhands.js","sourceRoot":"","sources":["../../../src/providers/openhands.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED