@mandible-ai/mandible 0.3.14 → 0.4.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 +102 -0
- package/dist/src/providers/openhands.d.ts.map +1 -0
- package/dist/src/providers/openhands.js +234 -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,102 @@
|
|
|
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:3000'.
|
|
7
|
+
*/
|
|
8
|
+
serverUrl?: string;
|
|
9
|
+
/**
|
|
10
|
+
* Bearer token for V1 API authentication.
|
|
11
|
+
* Sent as `Authorization: Bearer {apiKey}` when provided.
|
|
12
|
+
*/
|
|
13
|
+
apiKey?: string;
|
|
14
|
+
/**
|
|
15
|
+
* Model in "provider/model" format for the OpenHands agent.
|
|
16
|
+
* e.g. 'openai/qwen3-coder', 'anthropic/claude-sonnet-4-5-20250929'
|
|
17
|
+
*/
|
|
18
|
+
model?: string;
|
|
19
|
+
/**
|
|
20
|
+
* Git repository URL for the sandbox.
|
|
21
|
+
* Can be a static string or derived from the signal.
|
|
22
|
+
*/
|
|
23
|
+
repository?: string | ((signal: Signal<T>) => string);
|
|
24
|
+
/**
|
|
25
|
+
* Build the prompt from the incoming signal.
|
|
26
|
+
* Can be a static string, or a function that receives the signal.
|
|
27
|
+
*
|
|
28
|
+
* For context assembly, capture the environment in a closure:
|
|
29
|
+
* prompt: async (signal) => {
|
|
30
|
+
* const ctx = await assembleContext(signal, env, { includeLineage: true });
|
|
31
|
+
* return `${ctx}\n\nInvestigate this CI failure:\n${signal.payload.logs}`;
|
|
32
|
+
* }
|
|
33
|
+
*/
|
|
34
|
+
prompt: string | ((signal: Signal<T>) => string | Promise<string>);
|
|
35
|
+
/**
|
|
36
|
+
* Working directory for the OpenHands sandbox.
|
|
37
|
+
* Can be static or derived from the signal.
|
|
38
|
+
*/
|
|
39
|
+
workingDirectory?: string | ((signal: Signal<T>) => string);
|
|
40
|
+
/**
|
|
41
|
+
* Timeout in ms for the entire conversation. Default: 900_000 (15 min).
|
|
42
|
+
* CI investigation can take a while — reproducing failures, installing deps, running tests.
|
|
43
|
+
*/
|
|
44
|
+
timeout?: number;
|
|
45
|
+
/**
|
|
46
|
+
* Event callback for observability.
|
|
47
|
+
* Called with synthetic events derived from poll status changes.
|
|
48
|
+
* Errors in this callback are caught and do not crash the agent.
|
|
49
|
+
*/
|
|
50
|
+
onEvent?: (event: OpenHandsEvent) => void;
|
|
51
|
+
/** Map output to signal deposits. */
|
|
52
|
+
output?: OutputMapping<T>;
|
|
53
|
+
/** Auto-withdraw the triggering signal. Default: true. */
|
|
54
|
+
autoWithdraw?: boolean;
|
|
55
|
+
}
|
|
56
|
+
/** Synthetic event emitted from poll status changes. */
|
|
57
|
+
export interface OpenHandsEvent {
|
|
58
|
+
id: number;
|
|
59
|
+
source: 'agent' | 'user' | 'environment';
|
|
60
|
+
action?: string;
|
|
61
|
+
observation?: string;
|
|
62
|
+
message?: string;
|
|
63
|
+
args?: Record<string, unknown>;
|
|
64
|
+
content?: string;
|
|
65
|
+
extras?: Record<string, unknown>;
|
|
66
|
+
timestamp?: string;
|
|
67
|
+
}
|
|
68
|
+
/** Result of an OpenHands agent conversation. */
|
|
69
|
+
export interface OpenHandsResult {
|
|
70
|
+
/** Final status of the conversation. */
|
|
71
|
+
status: 'finished' | 'error' | 'timeout' | 'stopped' | 'stuck';
|
|
72
|
+
/** Summary text from the agent's final message. */
|
|
73
|
+
text: string;
|
|
74
|
+
/** Conversation ID for debugging/tracing. */
|
|
75
|
+
conversationId: string;
|
|
76
|
+
/** Wall-clock duration in ms. */
|
|
77
|
+
durationMs: number;
|
|
78
|
+
/** Events received during the conversation. */
|
|
79
|
+
events: OpenHandsEvent[];
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Creates an action handler powered by the OpenHands agent server (V1 API).
|
|
83
|
+
*
|
|
84
|
+
* OpenHands provides sandboxed terminal access inside Docker containers,
|
|
85
|
+
* which is ideal for CI investigation tasks that need to:
|
|
86
|
+
* - Fetch and parse CI logs
|
|
87
|
+
* - Reproduce build failures in isolation
|
|
88
|
+
* - Install dependencies and run tests
|
|
89
|
+
* - Propose fixes without affecting the host
|
|
90
|
+
*
|
|
91
|
+
* V1 Lifecycle:
|
|
92
|
+
* 1. POST /api/v1/app-conversations — create with initial message
|
|
93
|
+
* 2. GET /api/v1/app-conversations/start-tasks — poll until READY
|
|
94
|
+
* 3. GET /api/v1/app-conversations — poll until terminal state
|
|
95
|
+
*/
|
|
96
|
+
export declare function withOpenHands<T = Record<string, unknown>>(config: OpenHandsConfig<T>): ActionHandler<T>;
|
|
97
|
+
export type OpenHandsErrorCode = 'CONVERSATION_CREATE_FAILED' | 'STARTUP_FAILED' | 'STARTUP_TIMEOUT';
|
|
98
|
+
export declare class OpenHandsError extends Error {
|
|
99
|
+
readonly code: OpenHandsErrorCode;
|
|
100
|
+
constructor(code: OpenHandsErrorCode, message: string);
|
|
101
|
+
}
|
|
102
|
+
//# 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,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;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,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,wDAAwD;AACxD,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,GAAG,OAAO,CAAC;IAC/D,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;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,aAAa,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,MAAM,EAAE,eAAe,CAAC,CAAC,CAAC,GACzB,aAAa,CAAC,CAAC,CAAC,CA6HlB;AAiMD,MAAM,MAAM,kBAAkB,GAC1B,4BAA4B,GAC5B,gBAAgB,GAChB,iBAAiB,CAAC;AAEtB,qBAAa,cAAe,SAAQ,KAAK;aAErB,IAAI,EAAE,kBAAkB;gBAAxB,IAAI,EAAE,kBAAkB,EACxC,OAAO,EAAE,MAAM;CAKlB"}
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
// PURPOSE: withOpenHands — Sandboxed agentic coding via OpenHands agent server (V1 API).
|
|
2
|
+
// PURPOSE: REST client for CI investigation and DevOps tasks in isolated containers.
|
|
3
|
+
// ----------------------------------------------------------
|
|
4
|
+
// Provider factory
|
|
5
|
+
// ----------------------------------------------------------
|
|
6
|
+
/**
|
|
7
|
+
* Creates an action handler powered by the OpenHands agent server (V1 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
|
+
* V1 Lifecycle:
|
|
17
|
+
* 1. POST /api/v1/app-conversations — create with initial message
|
|
18
|
+
* 2. GET /api/v1/app-conversations/start-tasks — poll until READY
|
|
19
|
+
* 3. GET /api/v1/app-conversations — poll until terminal state
|
|
20
|
+
*/
|
|
21
|
+
export function withOpenHands(config) {
|
|
22
|
+
const { serverUrl = 'http://localhost:3000', apiKey, model, repository, prompt, workingDirectory, timeout = 900_000, onEvent, output, autoWithdraw = true, } = config;
|
|
23
|
+
return async (signal, ctx) => {
|
|
24
|
+
const startTime = Date.now();
|
|
25
|
+
const baseUrl = serverUrl.replace(/\/$/, '');
|
|
26
|
+
// Build shared headers
|
|
27
|
+
const headers = {
|
|
28
|
+
'Content-Type': 'application/json',
|
|
29
|
+
};
|
|
30
|
+
if (apiKey) {
|
|
31
|
+
headers['Authorization'] = `Bearer ${apiKey}`;
|
|
32
|
+
}
|
|
33
|
+
// 1. Resolve prompt
|
|
34
|
+
const resolvedPrompt = typeof prompt === 'function'
|
|
35
|
+
? await prompt(signal)
|
|
36
|
+
: prompt;
|
|
37
|
+
// 2. Resolve working directory
|
|
38
|
+
const cwd = typeof workingDirectory === 'function'
|
|
39
|
+
? workingDirectory(signal)
|
|
40
|
+
: workingDirectory;
|
|
41
|
+
// 3. Resolve repository
|
|
42
|
+
const repo = typeof repository === 'function'
|
|
43
|
+
? repository(signal)
|
|
44
|
+
: repository;
|
|
45
|
+
// 4. Create conversation with initial message
|
|
46
|
+
const events = [];
|
|
47
|
+
const createBody = {
|
|
48
|
+
initial_message: resolvedPrompt,
|
|
49
|
+
};
|
|
50
|
+
if (repo !== undefined)
|
|
51
|
+
createBody.repository = repo;
|
|
52
|
+
if (model !== undefined)
|
|
53
|
+
createBody.selected_model = model;
|
|
54
|
+
if (cwd !== undefined)
|
|
55
|
+
createBody.initial_cwd = cwd;
|
|
56
|
+
const createRes = await fetchWithTimeout(`${baseUrl}/api/v1/app-conversations`, {
|
|
57
|
+
method: 'POST',
|
|
58
|
+
headers,
|
|
59
|
+
body: JSON.stringify(createBody),
|
|
60
|
+
}, 30_000);
|
|
61
|
+
if (!createRes.ok) {
|
|
62
|
+
const errorText = await createRes.text().catch(() => 'unknown error');
|
|
63
|
+
throw new OpenHandsError('CONVERSATION_CREATE_FAILED', `Failed to create OpenHands conversation: ${createRes.status} ${errorText}`);
|
|
64
|
+
}
|
|
65
|
+
const createData = await createRes.json();
|
|
66
|
+
const conversationId = createData.conversation_id;
|
|
67
|
+
if (!conversationId) {
|
|
68
|
+
throw new OpenHandsError('CONVERSATION_CREATE_FAILED', 'OpenHands returned no conversation ID');
|
|
69
|
+
}
|
|
70
|
+
ctx.log(`OpenHands conversation ${conversationId} created`);
|
|
71
|
+
// 5. Wait for startup
|
|
72
|
+
await waitForStartup(baseUrl, conversationId, headers, 60_000, ctx);
|
|
73
|
+
// 6. Wait for completion
|
|
74
|
+
const result = await waitForCompletion(baseUrl, conversationId, headers, timeout, events, onEvent, ctx);
|
|
75
|
+
const durationMs = Date.now() - startTime;
|
|
76
|
+
const openHandsResult = {
|
|
77
|
+
status: result.status,
|
|
78
|
+
text: result.text,
|
|
79
|
+
conversationId,
|
|
80
|
+
durationMs,
|
|
81
|
+
events,
|
|
82
|
+
};
|
|
83
|
+
ctx.log(`OpenHands ${result.status} in ${durationMs}ms ` +
|
|
84
|
+
`(conversation=${conversationId}, events=${events.length})`);
|
|
85
|
+
// 7. Deposit output signals
|
|
86
|
+
const deposits = resolveOutput(output, openHandsResult, signal);
|
|
87
|
+
for (const deposit of deposits) {
|
|
88
|
+
await ctx.deposit(deposit.type, deposit.payload ?? { ...openHandsResult }, {
|
|
89
|
+
causedBy: [signal.id],
|
|
90
|
+
tags: deposit.tags,
|
|
91
|
+
ttl: deposit.ttl,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
// 8. Auto-withdraw
|
|
95
|
+
if (autoWithdraw) {
|
|
96
|
+
await ctx.withdraw(signal.id);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// ----------------------------------------------------------
|
|
101
|
+
// Startup polling
|
|
102
|
+
// ----------------------------------------------------------
|
|
103
|
+
/**
|
|
104
|
+
* Wait for the OpenHands conversation sandbox to be ready.
|
|
105
|
+
* Polls the start-tasks endpoint until READY or ERROR.
|
|
106
|
+
*/
|
|
107
|
+
async function waitForStartup(baseUrl, conversationId, headers, startupTimeout, ctx) {
|
|
108
|
+
const deadline = Date.now() + startupTimeout;
|
|
109
|
+
const pollInterval = 2_000;
|
|
110
|
+
while (Date.now() < deadline) {
|
|
111
|
+
const res = await fetchWithTimeout(`${baseUrl}/api/v1/app-conversations/start-tasks?ids=${encodeURIComponent(conversationId)}`, { method: 'GET', headers }, 10_000).catch(() => null);
|
|
112
|
+
if (res?.ok) {
|
|
113
|
+
const data = await res.json().catch(() => ({}));
|
|
114
|
+
const tasks = data.tasks;
|
|
115
|
+
if (tasks && tasks.length > 0) {
|
|
116
|
+
const task = tasks[0];
|
|
117
|
+
const status = task.status;
|
|
118
|
+
if (status === 'READY') {
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
if (status === 'ERROR') {
|
|
122
|
+
throw new OpenHandsError('STARTUP_FAILED', `OpenHands startup failed for conversation ${conversationId}`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
await sleep(pollInterval);
|
|
127
|
+
}
|
|
128
|
+
throw new OpenHandsError('STARTUP_TIMEOUT', `OpenHands startup timed out after ${startupTimeout}ms for conversation ${conversationId}`);
|
|
129
|
+
}
|
|
130
|
+
// ----------------------------------------------------------
|
|
131
|
+
// Completion polling
|
|
132
|
+
// ----------------------------------------------------------
|
|
133
|
+
/**
|
|
134
|
+
* Wait for the OpenHands conversation to reach a terminal state.
|
|
135
|
+
* Polls the conversations endpoint and emits synthetic events on status changes.
|
|
136
|
+
*/
|
|
137
|
+
async function waitForCompletion(baseUrl, conversationId, headers, timeout, events, onEvent, ctx) {
|
|
138
|
+
const deadline = Date.now() + timeout;
|
|
139
|
+
const pollInterval = 5_000;
|
|
140
|
+
let lastStatus = '';
|
|
141
|
+
while (Date.now() < deadline) {
|
|
142
|
+
const statusRes = await fetchWithTimeout(`${baseUrl}/api/v1/app-conversations?ids=${encodeURIComponent(conversationId)}`, { method: 'GET', headers }, 10_000).catch(() => null);
|
|
143
|
+
if (statusRes?.ok) {
|
|
144
|
+
const statusData = await statusRes.json().catch((err) => {
|
|
145
|
+
ctx.log(`Warning: failed to parse poll response: ${err.message}`, 'warn');
|
|
146
|
+
return {};
|
|
147
|
+
});
|
|
148
|
+
const conversations = statusData.conversations;
|
|
149
|
+
if (conversations && conversations.length > 0) {
|
|
150
|
+
const conv = conversations[0];
|
|
151
|
+
const executionStatus = conv.execution_status;
|
|
152
|
+
const sandboxStatus = conv.sandbox_status;
|
|
153
|
+
const lastMessage = conv.last_message;
|
|
154
|
+
// Emit synthetic event on status change
|
|
155
|
+
const currentStatus = `${executionStatus}:${sandboxStatus}`;
|
|
156
|
+
if (currentStatus !== lastStatus) {
|
|
157
|
+
lastStatus = currentStatus;
|
|
158
|
+
const event = {
|
|
159
|
+
id: events.length + 1,
|
|
160
|
+
source: 'environment',
|
|
161
|
+
observation: 'status_change',
|
|
162
|
+
message: `execution=${executionStatus} sandbox=${sandboxStatus}`,
|
|
163
|
+
timestamp: new Date().toISOString(),
|
|
164
|
+
};
|
|
165
|
+
events.push(event);
|
|
166
|
+
if (onEvent) {
|
|
167
|
+
try {
|
|
168
|
+
onEvent(event);
|
|
169
|
+
}
|
|
170
|
+
catch { /* swallow callback errors */ }
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Check terminal states
|
|
174
|
+
if (executionStatus === 'FINISHED') {
|
|
175
|
+
return { status: 'finished', text: lastMessage ?? '' };
|
|
176
|
+
}
|
|
177
|
+
if (executionStatus === 'ERROR') {
|
|
178
|
+
return { status: 'error', text: lastMessage ?? 'Agent encountered an error' };
|
|
179
|
+
}
|
|
180
|
+
if (executionStatus === 'STUCK') {
|
|
181
|
+
return { status: 'stuck', text: lastMessage ?? 'Agent is stuck' };
|
|
182
|
+
}
|
|
183
|
+
if (sandboxStatus === 'ERROR') {
|
|
184
|
+
return { status: 'error', text: lastMessage ?? 'Sandbox error' };
|
|
185
|
+
}
|
|
186
|
+
if (executionStatus === 'PAUSED' && sandboxStatus === 'STOPPED') {
|
|
187
|
+
return { status: 'stopped', text: lastMessage ?? 'Agent was stopped' };
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
await sleep(pollInterval);
|
|
192
|
+
}
|
|
193
|
+
return { status: 'timeout', text: 'Agent timed out' };
|
|
194
|
+
}
|
|
195
|
+
// ----------------------------------------------------------
|
|
196
|
+
// Helpers
|
|
197
|
+
// ----------------------------------------------------------
|
|
198
|
+
/** fetch() with AbortSignal.timeout. */
|
|
199
|
+
async function fetchWithTimeout(url, init, timeoutMs) {
|
|
200
|
+
return fetch(url, {
|
|
201
|
+
...init,
|
|
202
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
function sleep(ms) {
|
|
206
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
207
|
+
}
|
|
208
|
+
// ----------------------------------------------------------
|
|
209
|
+
// Output mapping (same 3-pattern as withOpenCode/withClaudeCode)
|
|
210
|
+
// ----------------------------------------------------------
|
|
211
|
+
function resolveOutput(output, result, signal) {
|
|
212
|
+
if (!output) {
|
|
213
|
+
return [{ type: `${signal.type}:completed`, payload: result }];
|
|
214
|
+
}
|
|
215
|
+
if (typeof output === 'function') {
|
|
216
|
+
const mapped = output(result, signal);
|
|
217
|
+
return Array.isArray(mapped) ? mapped : [mapped];
|
|
218
|
+
}
|
|
219
|
+
return [{
|
|
220
|
+
type: output.type,
|
|
221
|
+
payload: result,
|
|
222
|
+
tags: output.tags,
|
|
223
|
+
ttl: output.ttl,
|
|
224
|
+
}];
|
|
225
|
+
}
|
|
226
|
+
export class OpenHandsError extends Error {
|
|
227
|
+
code;
|
|
228
|
+
constructor(code, message) {
|
|
229
|
+
super(message);
|
|
230
|
+
this.code = code;
|
|
231
|
+
this.name = 'OpenHandsError';
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
//# 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