bernard-agent 0.8.1 → 0.9.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/README.md +80 -44
- package/dist/agent.d.ts +14 -3
- package/dist/agent.js +228 -38
- package/dist/agent.js.map +1 -1
- package/dist/builtin-specialists/correction-agent.json +32 -0
- package/dist/builtin-specialists/file-wrapper.json +43 -0
- package/dist/builtin-specialists/shell-wrapper.json +50 -0
- package/dist/builtin-specialists/specialist-creator.json +32 -0
- package/dist/builtin-specialists/web-wrapper.json +38 -0
- package/dist/candidate-bootstrap.d.ts +18 -0
- package/dist/candidate-bootstrap.js +61 -0
- package/dist/candidate-bootstrap.js.map +1 -0
- package/dist/config.d.ts +126 -10
- package/dist/config.js +222 -45
- package/dist/config.js.map +1 -1
- package/dist/context.js +23 -6
- package/dist/context.js.map +1 -1
- package/dist/correction-candidates.d.ts +54 -0
- package/dist/correction-candidates.js +138 -0
- package/dist/correction-candidates.js.map +1 -0
- package/dist/correction.d.ts +67 -0
- package/dist/correction.js +138 -0
- package/dist/correction.js.map +1 -0
- package/dist/critic.js +2 -1
- package/dist/critic.js.map +1 -1
- package/dist/cron/notes-store.d.ts +41 -0
- package/dist/cron/notes-store.js +134 -0
- package/dist/cron/notes-store.js.map +1 -0
- package/dist/cron/runner.js +25 -3
- package/dist/cron/runner.js.map +1 -1
- package/dist/cron/scoped-notes-tools.d.ts +24 -0
- package/dist/cron/scoped-notes-tools.js +50 -0
- package/dist/cron/scoped-notes-tools.js.map +1 -0
- package/dist/custom-providers.d.ts +80 -0
- package/dist/custom-providers.js +238 -0
- package/dist/custom-providers.js.map +1 -0
- package/dist/fs-utils.d.ts +2 -0
- package/dist/fs-utils.js +44 -0
- package/dist/fs-utils.js.map +1 -0
- package/dist/history.js +3 -1
- package/dist/history.js.map +1 -1
- package/dist/image.d.ts +59 -0
- package/dist/image.js +228 -0
- package/dist/image.js.map +1 -0
- package/dist/index.js +72 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp.js +1 -1
- package/dist/mcp.js.map +1 -1
- package/dist/memory.d.ts +13 -0
- package/dist/memory.js +45 -4
- package/dist/memory.js.map +1 -1
- package/dist/menu.d.ts +97 -0
- package/dist/menu.js +338 -0
- package/dist/menu.js.map +1 -0
- package/dist/os-info.d.ts +22 -0
- package/dist/os-info.js +111 -0
- package/dist/os-info.js.map +1 -0
- package/dist/output.d.ts +35 -1
- package/dist/output.js +256 -45
- package/dist/output.js.map +1 -1
- package/dist/pac.d.ts +14 -2
- package/dist/pac.js +5 -5
- package/dist/pac.js.map +1 -1
- package/dist/paths.d.ts +5 -0
- package/dist/paths.js +6 -1
- package/dist/paths.js.map +1 -1
- package/dist/plan-store.d.ts +47 -0
- package/dist/plan-store.js +94 -0
- package/dist/plan-store.js.map +1 -0
- package/dist/prompt-rewriter.d.ts +29 -0
- package/dist/prompt-rewriter.js +155 -0
- package/dist/prompt-rewriter.js.map +1 -0
- package/dist/providers/index.d.ts +56 -4
- package/dist/providers/index.js +86 -5
- package/dist/providers/index.js.map +1 -1
- package/dist/providers/profiles.d.ts +37 -0
- package/dist/providers/profiles.js +110 -0
- package/dist/providers/profiles.js.map +1 -0
- package/dist/providers/types.d.ts +11 -2
- package/dist/providers/types.js +3 -0
- package/dist/providers/types.js.map +1 -1
- package/dist/rag-query.js +15 -1
- package/dist/rag-query.js.map +1 -1
- package/dist/react.d.ts +38 -0
- package/dist/react.js +116 -0
- package/dist/react.js.map +1 -0
- package/dist/reasoning-log.d.ts +30 -0
- package/dist/reasoning-log.js +102 -0
- package/dist/reasoning-log.js.map +1 -0
- package/dist/reference-resolver.d.ts +47 -0
- package/dist/reference-resolver.js +316 -0
- package/dist/reference-resolver.js.map +1 -0
- package/dist/reference-tool-lookup.d.ts +37 -0
- package/dist/reference-tool-lookup.js +318 -0
- package/dist/reference-tool-lookup.js.map +1 -0
- package/dist/repl.js +1038 -371
- package/dist/repl.js.map +1 -1
- package/dist/setup.js +2 -1
- package/dist/setup.js.map +1 -1
- package/dist/specialist-detector.js +2 -1
- package/dist/specialist-detector.js.map +1 -1
- package/dist/specialists.d.ts +74 -3
- package/dist/specialists.js +152 -20
- package/dist/specialists.js.map +1 -1
- package/dist/structured-output.d.ts +58 -0
- package/dist/structured-output.js +138 -0
- package/dist/structured-output.js.map +1 -0
- package/dist/theme.d.ts +2 -0
- package/dist/theme.js +18 -12
- package/dist/theme.js.map +1 -1
- package/dist/tool-call-repair.d.ts +29 -0
- package/dist/tool-call-repair.js +99 -0
- package/dist/tool-call-repair.js.map +1 -0
- package/dist/tool-profiles.d.ts +70 -0
- package/dist/tool-profiles.js +385 -0
- package/dist/tool-profiles.js.map +1 -0
- package/dist/tools/activity-summary.d.ts +15 -0
- package/dist/tools/activity-summary.js +44 -0
- package/dist/tools/activity-summary.js.map +1 -0
- package/dist/tools/ask-user.d.ts +49 -0
- package/dist/tools/ask-user.js +52 -0
- package/dist/tools/ask-user.js.map +1 -0
- package/dist/tools/augment.d.ts +17 -0
- package/dist/tools/augment.js +102 -0
- package/dist/tools/augment.js.map +1 -0
- package/dist/tools/cron-logs.js +7 -0
- package/dist/tools/cron-logs.js.map +1 -1
- package/dist/tools/cron-notes.d.ts +52 -0
- package/dist/tools/cron-notes.js +105 -0
- package/dist/tools/cron-notes.js.map +1 -0
- package/dist/tools/datetime.d.ts +7 -0
- package/dist/tools/datetime.js +29 -3
- package/dist/tools/datetime.js.map +1 -1
- package/dist/tools/evaluate.d.ts +20 -0
- package/dist/tools/evaluate.js +29 -0
- package/dist/tools/evaluate.js.map +1 -0
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp.d.ts +3 -3
- package/dist/tools/plan.d.ts +81 -0
- package/dist/tools/plan.js +108 -0
- package/dist/tools/plan.js.map +1 -0
- package/dist/tools/result-cap.d.ts +24 -0
- package/dist/tools/result-cap.js +44 -0
- package/dist/tools/result-cap.js.map +1 -0
- package/dist/tools/routine.d.ts +3 -3
- package/dist/tools/shell.d.ts +14 -1
- package/dist/tools/shell.js +86 -4
- package/dist/tools/shell.js.map +1 -1
- package/dist/tools/specialist-run.d.ts +5 -3
- package/dist/tools/specialist-run.js +115 -24
- package/dist/tools/specialist-run.js.map +1 -1
- package/dist/tools/specialist.d.ts +83 -3
- package/dist/tools/specialist.js +83 -3
- package/dist/tools/specialist.js.map +1 -1
- package/dist/tools/subagent.js +32 -14
- package/dist/tools/subagent.js.map +1 -1
- package/dist/tools/task.d.ts +5 -5
- package/dist/tools/task.js +9 -42
- package/dist/tools/task.js.map +1 -1
- package/dist/tools/think.d.ts +18 -0
- package/dist/tools/think.js +25 -0
- package/dist/tools/think.js.map +1 -0
- package/dist/tools/tool-wrapper-run.d.ts +121 -0
- package/dist/tools/tool-wrapper-run.js +382 -0
- package/dist/tools/tool-wrapper-run.js.map +1 -0
- package/dist/tools/types.d.ts +28 -2
- package/dist/tools/web-search.d.ts +31 -0
- package/dist/tools/web-search.js +172 -0
- package/dist/tools/web-search.js.map +1 -0
- package/dist/tools/wrap-with-specialist.d.ts +55 -0
- package/dist/tools/wrap-with-specialist.js +137 -0
- package/dist/tools/wrap-with-specialist.js.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"subagent.js","sourceRoot":"","sources":["../../src/tools/subagent.ts"],"names":[],"mappings":";;AAmDA,kDAEC;AAeD,gDA8JC;AAlOD,2BAAwC;AACxC,6BAAwB;AACxB,oDAAuF;AACvF,yCAA2D;AAC3D,4CAMsB;AACtB,4CAAwC;AACxC,4DAA0D;AAC1D,mDAA8F;AAC9F,4CAIsB;AAGtB,sCAAuC;AACvC,mDAAoD;AACpD,+DAA8D;AAC9D,uCAAiD;AACjD,gEAAwD;AAExD,MAAM,mBAAmB,GAAG,GAAG,CAAC;AAChC,MAAM,wBAAwB,GAAG,EAAE,CAAC;AAEpC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;iOAciM,CAAC;AAElO;;;;GAIG;AACH,SAAgB,mBAAmB;IACjC,IAAA,0BAAU,GAAE,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,SAAgB,kBAAkB,CAChC,MAAqB,EACrB,OAAoB,EACpB,WAAwB,EACxB,QAA8B,EAC9B,QAAmB;IAEnB,OAAO,IAAA,SAAI,EAAC;QACV,WAAW,EACT,8WAA8W;QAChX,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,IAAI,EAAE,OAAC;iBACJ,MAAM,EAAE;iBACR,QAAQ,CACP,uQAAuQ,CACxQ;YACH,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,mDAAmD,CAAC;YAC5F,QAAQ,EAAE,OAAC;iBACR,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,0FAA0F,CAC3F;YACH,KAAK,EAAE,OAAC;iBACL,MAAM,EAAE;iBACR,QAAQ,EAAE;iBACV,QAAQ,CACP,oGAAoG,CACrG;SACJ,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE;YACjE,MAAM,UAAU,GAAG,IAAA,mCAAuB,EAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACxE,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC;gBACnB,OAAO,UAAU,IAAA,uCAA2B,EAAC,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC9G,CAAC;YACD,MAAM,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC;YAExE,MAAM,IAAI,GAAG,IAAA,2BAAW,GAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,yCAAyC,qCAAqB,oDAAoD,CAAC;YAC5H,CAAC;YAED,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,OAAO,EAAE,EAAE,CAAC;YAE3B,IAAA,8BAAkB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAE7B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,IAAA,sBAAW,EAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;gBAE9D,IAAI,WAAW,GAAG,SAAS,IAAI,EAAE,CAAC;gBAClC,IAAI,OAAO,EAAE,CAAC;oBACZ,WAAW,IAAI,gBAAgB,OAAO,EAAE,CAAC;gBAC3C,CAAC;gBAED,sCAAsC;gBACtC,IAAI,UAAU,CAAC;gBACf,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC;wBACH,UAAU,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;wBACzC,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC1B,IAAA,oBAAQ,EAAC,cAAc,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;wBACtF,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,IAAA,oBAAQ,EAAC,oBAAoB,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;oBACnF,CAAC;gBACH,CAAC;gBAED,MAAM,cAAc,GAClB,uBAAuB;oBACvB,IAAA,sCAAkB,EAAC;wBACjB,WAAW;wBACX,UAAU;wBACV,cAAc,EAAE,IAAI;qBACrB,CAAC,CAAC;gBAEL,MAAM,YAAY,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAO,EAAE,EAAE;oBAC7D,KAAK,MAAM,EAAE,IAAI,SAAS,IAAI,EAAE,EAAE,CAAC;wBACjC,IAAA,yBAAa,EAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,IAA+B,EAAE,MAAM,CAAC,CAAC;oBACzE,CAAC;oBACD,KAAK,MAAM,EAAE,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;wBACnC,IAAA,2BAAe,EAAC,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBAClD,CAAC;oBACD,IAAI,IAAI,EAAE,CAAC;wBACT,IAAA,8BAAkB,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBACnC,CAAC;gBACH,CAAC,CAAC;gBAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,mBAAmB,CAAC,CAAC;gBAClE,MAAM,UAAU,GAAG,IAAA,oCAAc,EAAC;oBAChC,MAAM;oBACN,QAAQ,EAAE,gBAAgB;oBAC1B,KAAK,EAAE,aAAa;oBACpB,KAAK,EAAE,UAAU;oBACjB,WAAW,EAAE,WAAW,CAAC,WAAW;iBACrC,CAAC,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,IAAA,iBAAY,EAAC;oBAChC,KAAK,EAAE,IAAA,4BAAiB,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,CAAC;oBACjE,eAAe,EAAE,IAAA,sCAA2B,EAAC,MAAM,EAAE,gBAAgB,CAAC;oBACtE,KAAK,EAAE,SAAS;oBAChB,QAAQ;oBACR,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,MAAM,EAAE,cAAc;oBACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;oBAClD,WAAW,EAAE,WAAW,CAAC,WAAW;oBACpC,wBAAwB,EAAE,IAAA,8BAAoB,EAAC,QAAQ,CAAC;oBACxD,2BAA2B,EAAE,UAAU;oBACvC,YAAY;iBACb,CAAC,CAAC;gBAEH,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;oBACtB,MAAM,SAAS,GAAG,MAAM,IAAA,mBAAU,EAAC;wBACjC,MAAM;wBACN,SAAS,EAAE,WAAW;wBACtB,aAAa,EAAE,MAAM;wBACrB,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;4BAClC,MAAM,aAAa,GAAG,wBAAwB,CAAC;4BAC/C,OAAO,IAAA,iBAAY,EAAC;gCAClB,KAAK,EAAE,IAAA,4BAAiB,EAAC,MAAM,EAAE,gBAAgB,EAAE,aAAa,CAAC;gCACjE,eAAe,EAAE,IAAA,sCAA2B,EAAC,MAAM,EAAE,gBAAgB,CAAC;gCACtE,KAAK,EAAE,SAAS;gCAChB,QAAQ,EAAE,aAAa;gCACvB,SAAS,EAAE,MAAM,CAAC,SAAS;gCAC3B,MAAM,EAAE,cAAc;gCACtB,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,EAAE,GAAG,aAAa,CAAC;gCACpE,WAAW,EAAE,WAAW,CAAC,WAAW;gCACpC,wBAAwB,EAAE,IAAA,8BAAoB,EAAC,aAAa,CAAC;gCAC7D,2BAA2B,EAAE,UAAU;gCACvC,YAAY;6BACb,CAAC,CAAC;wBACL,CAAC;wBACD,MAAM;wBACN,WAAW,EAAE,WAAW,CAAC,WAAW;qBACrC,CAAC,CAAC;oBAEH,IAAA,4BAAgB,EAAC,EAAE,CAAC,CAAC;oBACrB,OAAO,IAAA,iCAAiB,EACtB,IAAA,2CAAqB,EACnB,SAAS,CAAC,WAAW,CAAC,IAAI,EAC1B,SAAS,CAAC,WAAW,CAAC,KAAK,EAC3B,UAAU,CACX,CACF,CAAC;gBACJ,CAAC;gBAED,IAAA,4BAAgB,EAAC,EAAE,CAAC,CAAC;gBACrB,OAAO,IAAA,iCAAiB,EACtB,IAAA,2CAAqB,EAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAkB,EAAE,UAAU,CAAC,CAC1E,CAAC;YACJ,CAAC;YAAC,OAAO,GAAY,EAAE,CAAC;gBACtB,IAAA,4BAAgB,EAAC,EAAE,CAAC,CAAC;gBACrB,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACjE,OAAO,oBAAoB,OAAO,EAAE,CAAC;YACvC,CAAC;oBAAS,CAAC;gBACT,IAAA,2BAAW,GAAE,CAAC;YAChB,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/tools/task.d.ts
CHANGED
|
@@ -56,32 +56,32 @@ export declare function createTaskTool(config: BernardConfig, options: ToolOptio
|
|
|
56
56
|
provider?: string | undefined;
|
|
57
57
|
model?: string | undefined;
|
|
58
58
|
task?: string | undefined;
|
|
59
|
-
context?: string | undefined;
|
|
60
59
|
taskId?: string | undefined;
|
|
60
|
+
context?: string | undefined;
|
|
61
61
|
}, {
|
|
62
62
|
provider?: string | undefined;
|
|
63
63
|
model?: string | undefined;
|
|
64
64
|
task?: string | undefined;
|
|
65
|
-
context?: string | undefined;
|
|
66
65
|
taskId?: string | undefined;
|
|
66
|
+
context?: string | undefined;
|
|
67
67
|
}>, {
|
|
68
68
|
provider?: string | undefined;
|
|
69
69
|
model?: string | undefined;
|
|
70
70
|
task?: string | undefined;
|
|
71
|
-
context?: string | undefined;
|
|
72
71
|
taskId?: string | undefined;
|
|
72
|
+
context?: string | undefined;
|
|
73
73
|
}, {
|
|
74
74
|
provider?: string | undefined;
|
|
75
75
|
model?: string | undefined;
|
|
76
76
|
task?: string | undefined;
|
|
77
|
-
context?: string | undefined;
|
|
78
77
|
taskId?: string | undefined;
|
|
78
|
+
context?: string | undefined;
|
|
79
79
|
}>, string> & {
|
|
80
80
|
execute: (args: {
|
|
81
81
|
provider?: string | undefined;
|
|
82
82
|
model?: string | undefined;
|
|
83
83
|
task?: string | undefined;
|
|
84
|
-
context?: string | undefined;
|
|
85
84
|
taskId?: string | undefined;
|
|
85
|
+
context?: string | undefined;
|
|
86
86
|
}, options: import("ai").ToolExecutionOptions) => PromiseLike<string>;
|
|
87
87
|
};
|
package/dist/tools/task.js
CHANGED
|
@@ -9,6 +9,7 @@ const ai_1 = require("ai");
|
|
|
9
9
|
const zod_1 = require("zod");
|
|
10
10
|
const index_js_1 = require("../providers/index.js");
|
|
11
11
|
const index_js_2 = require("./index.js");
|
|
12
|
+
const structured_output_js_1 = require("../structured-output.js");
|
|
12
13
|
const output_js_1 = require("../output.js");
|
|
13
14
|
const logger_js_1 = require("../logger.js");
|
|
14
15
|
const memory_context_js_1 = require("../memory-context.js");
|
|
@@ -59,38 +60,6 @@ function validateTaskResult(parsed) {
|
|
|
59
60
|
const { status, output, details } = result.data;
|
|
60
61
|
return details !== undefined ? { status, output, details } : { status, output };
|
|
61
62
|
}
|
|
62
|
-
function extractJsonBlock(text, start) {
|
|
63
|
-
if (text[start] !== '{')
|
|
64
|
-
return undefined;
|
|
65
|
-
let depth = 0;
|
|
66
|
-
let inString = false;
|
|
67
|
-
let escaped = false;
|
|
68
|
-
for (let i = start; i < text.length; i++) {
|
|
69
|
-
const ch = text[i];
|
|
70
|
-
if (escaped) {
|
|
71
|
-
escaped = false;
|
|
72
|
-
continue;
|
|
73
|
-
}
|
|
74
|
-
if (ch === '\\' && inString) {
|
|
75
|
-
escaped = true;
|
|
76
|
-
continue;
|
|
77
|
-
}
|
|
78
|
-
if (ch === '"') {
|
|
79
|
-
inString = !inString;
|
|
80
|
-
continue;
|
|
81
|
-
}
|
|
82
|
-
if (inString)
|
|
83
|
-
continue;
|
|
84
|
-
if (ch === '{')
|
|
85
|
-
depth++;
|
|
86
|
-
else if (ch === '}') {
|
|
87
|
-
depth--;
|
|
88
|
-
if (depth === 0)
|
|
89
|
-
return text.slice(start, i + 1);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
return undefined;
|
|
93
|
-
}
|
|
94
63
|
/**
|
|
95
64
|
* Wraps raw text output into a structured TaskResult.
|
|
96
65
|
* Extracts JSON from the text and validates it against TaskResultSchema.
|
|
@@ -111,7 +80,7 @@ function wrapTaskResult(text) {
|
|
|
111
80
|
// 2. Scan forward for each top-level '{' and try bracket-counted extraction
|
|
112
81
|
for (let i = 0; i < trimmed.length; i++) {
|
|
113
82
|
if (trimmed[i] === '{') {
|
|
114
|
-
const block = extractJsonBlock(trimmed, i);
|
|
83
|
+
const block = (0, structured_output_js_1.extractJsonBlock)(trimmed, i);
|
|
115
84
|
if (block) {
|
|
116
85
|
try {
|
|
117
86
|
const parsed = JSON.parse(block);
|
|
@@ -168,18 +137,15 @@ function createTaskTool(config, options, memoryStore, mcpTools, ragStore, routin
|
|
|
168
137
|
message: 'Either task or taskId must be provided',
|
|
169
138
|
}),
|
|
170
139
|
execute: async ({ task, taskId, context, provider, model }, execOptions) => {
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
const resolvedModel = model ??
|
|
175
|
-
(resolvedProvider !== config.provider ? (0, config_js_1.getDefaultModel)(resolvedProvider) : config.model);
|
|
176
|
-
if (!(0, config_js_1.hasProviderKey)(config, resolvedProvider)) {
|
|
177
|
-
const envVar = config_js_1.PROVIDER_ENV_VARS[resolvedProvider] ?? `${resolvedProvider.toUpperCase()}_API_KEY`;
|
|
140
|
+
const resolution = (0, config_js_1.resolveProviderAndModel)({ provider, model, config });
|
|
141
|
+
if (!resolution.ok) {
|
|
142
|
+
const envHint = resolution.isCustom ? '' : ` or set ${resolution.envVar}`;
|
|
178
143
|
return JSON.stringify({
|
|
179
144
|
status: 'error',
|
|
180
|
-
output: `No API key found for provider "${
|
|
145
|
+
output: `No API key found for provider "${resolution.provider}". Run: bernard add-key ${resolution.provider} <your-api-key>${envHint}.`,
|
|
181
146
|
});
|
|
182
147
|
}
|
|
148
|
+
const { provider: resolvedProvider, model: resolvedModel } = resolution;
|
|
183
149
|
// Resolve saved task content if taskId is provided (before acquiring slot)
|
|
184
150
|
let resolvedTask = task ?? '';
|
|
185
151
|
if (taskId) {
|
|
@@ -246,7 +212,8 @@ function createTaskTool(config, options, memoryStore, mcpTools, ragStore, routin
|
|
|
246
212
|
});
|
|
247
213
|
const taskMaxSteps = getTaskMaxSteps(config);
|
|
248
214
|
const result = await (0, ai_1.generateText)({
|
|
249
|
-
model: (0, index_js_1.
|
|
215
|
+
model: (0, index_js_1.getModelForConfig)(config, resolvedProvider, resolvedModel),
|
|
216
|
+
providerOptions: (0, index_js_1.getProviderOptionsForConfig)(config, resolvedProvider),
|
|
250
217
|
tools: baseTools,
|
|
251
218
|
maxSteps: taskMaxSteps,
|
|
252
219
|
maxTokens: config.maxTokens,
|
package/dist/tools/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/tools/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* Creates the `think` tool for coordinator (ReAct) mode.
|
|
4
|
+
*
|
|
5
|
+
* Publishes a brief reasoning statement visibly to the user. The return value
|
|
6
|
+
* to the model is intentionally minimal to avoid re-polluting the context.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createThinkTool(): import("ai").Tool<z.ZodObject<{
|
|
9
|
+
thought: z.ZodString;
|
|
10
|
+
}, "strip", z.ZodTypeAny, {
|
|
11
|
+
thought: string;
|
|
12
|
+
}, {
|
|
13
|
+
thought: string;
|
|
14
|
+
}>, string> & {
|
|
15
|
+
execute: (args: {
|
|
16
|
+
thought: string;
|
|
17
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<string>;
|
|
18
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createThinkTool = createThinkTool;
|
|
4
|
+
const ai_1 = require("ai");
|
|
5
|
+
const zod_1 = require("zod");
|
|
6
|
+
const output_js_1 = require("../output.js");
|
|
7
|
+
/**
|
|
8
|
+
* Creates the `think` tool for coordinator (ReAct) mode.
|
|
9
|
+
*
|
|
10
|
+
* Publishes a brief reasoning statement visibly to the user. The return value
|
|
11
|
+
* to the model is intentionally minimal to avoid re-polluting the context.
|
|
12
|
+
*/
|
|
13
|
+
function createThinkTool() {
|
|
14
|
+
return (0, ai_1.tool)({
|
|
15
|
+
description: "Publish a brief 'thought' that the user can see — use this to think out loud before a tool call or batch of parallel calls. Keep each thought to 1-3 sentences. Explain what you know, what gap the next action fills, and what success looks like. Required in coordinator mode before each non-trivial tool-call batch.",
|
|
16
|
+
parameters: zod_1.z.object({
|
|
17
|
+
thought: zod_1.z.string().describe('A concise reasoning statement (1-3 sentences)'),
|
|
18
|
+
}),
|
|
19
|
+
execute: async ({ thought }) => {
|
|
20
|
+
(0, output_js_1.printThought)(thought);
|
|
21
|
+
return 'Thought recorded.';
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=think.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"think.js","sourceRoot":"","sources":["../../src/tools/think.ts"],"names":[],"mappings":";;AAUA,0CAYC;AAtBD,2BAA0B;AAC1B,6BAAwB;AACxB,4CAA4C;AAE5C;;;;;GAKG;AACH,SAAgB,eAAe;IAC7B,OAAO,IAAA,SAAI,EAAC;QACV,WAAW,EACT,2TAA2T;QAC7T,UAAU,EAAE,OAAC,CAAC,MAAM,CAAC;YACnB,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,+CAA+C,CAAC;SAC9E,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,EAAmB,EAAE;YAC9C,IAAA,wBAAY,EAAC,OAAO,CAAC,CAAC;YACtB,OAAO,mBAAmB,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { type ToolOptions } from './index.js';
|
|
3
|
+
import { type BernardConfig } from '../config.js';
|
|
4
|
+
import type { MemoryStore } from '../memory.js';
|
|
5
|
+
import type { RAGStore } from '../rag.js';
|
|
6
|
+
import type { RoutineStore } from '../routines.js';
|
|
7
|
+
import type { SpecialistStore, Specialist } from '../specialists.js';
|
|
8
|
+
import type { CandidateStoreReader } from '../specialist-candidates.js';
|
|
9
|
+
import type { CorrectionCandidateStore } from '../correction-candidates.js';
|
|
10
|
+
import { type WrapperResult } from '../structured-output.js';
|
|
11
|
+
/** Formats good/bad examples as a markdown block appended to the child's system prompt. */
|
|
12
|
+
export declare function formatExamples(specialist: Specialist): string;
|
|
13
|
+
/**
|
|
14
|
+
* Builds the full tool registry a tool-wrapper specialist could possibly
|
|
15
|
+
* reach, then intersects with `targetTools` when set. Persona/tool-wrapper
|
|
16
|
+
* specialists get strict isolation; meta specialists typically pass
|
|
17
|
+
* `targetTools` that include dispatch tools (specialist, tool_wrapper_run)
|
|
18
|
+
* for recursive orchestration.
|
|
19
|
+
*/
|
|
20
|
+
export declare function buildChildTools(specialist: Specialist, fullRegistry: Record<string, any>): Record<string, any>;
|
|
21
|
+
/**
|
|
22
|
+
* Captures the last tool call observed in a `generateText` result.
|
|
23
|
+
* Used to populate `attemptedCall` on correction candidates.
|
|
24
|
+
*/
|
|
25
|
+
export declare function captureLastToolCall(steps: any[] | undefined): string;
|
|
26
|
+
/**
|
|
27
|
+
* Builds a compact record of tool calls for the reasoning log.
|
|
28
|
+
*/
|
|
29
|
+
export declare function captureToolCalls(steps: any[] | undefined): Array<{
|
|
30
|
+
tool: string;
|
|
31
|
+
args: unknown;
|
|
32
|
+
resultPreview: string;
|
|
33
|
+
}>;
|
|
34
|
+
/** Dependencies that change per-process but never per-call. Passed once. */
|
|
35
|
+
export interface ToolWrapperDeps {
|
|
36
|
+
config: BernardConfig;
|
|
37
|
+
options: ToolOptions;
|
|
38
|
+
memoryStore: MemoryStore;
|
|
39
|
+
specialistStore: SpecialistStore;
|
|
40
|
+
correctionStore: CorrectionCandidateStore;
|
|
41
|
+
mcpTools?: Record<string, any>;
|
|
42
|
+
ragStore?: RAGStore;
|
|
43
|
+
routineStore?: RoutineStore;
|
|
44
|
+
candidateStore?: CandidateStoreReader;
|
|
45
|
+
}
|
|
46
|
+
/** Per-call inputs to a tool-wrapper dispatch. */
|
|
47
|
+
export interface DispatchToolWrapperArgs {
|
|
48
|
+
specialistId: string;
|
|
49
|
+
input: string;
|
|
50
|
+
context?: string;
|
|
51
|
+
provider?: string;
|
|
52
|
+
model?: string;
|
|
53
|
+
abortSignal?: AbortSignal;
|
|
54
|
+
/** Label shown to the user when announcing the wrapper run. Defaults to `[<kind>] <name>`. */
|
|
55
|
+
runLabel?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Core dispatch for tool-wrapper specialists. Used by both the explicit
|
|
59
|
+
* `tool_wrapper_run` tool and the shim layer that routes raw tool calls
|
|
60
|
+
* (e.g. `shell`) through their corresponding wrapper specialist.
|
|
61
|
+
*
|
|
62
|
+
* Returns a {@link WrapperResult} so callers can shape the parent-facing
|
|
63
|
+
* response however they like (JSON envelope, raw result, error string).
|
|
64
|
+
* Pool acquisition, reasoning logging, and correction-candidate enqueue
|
|
65
|
+
* happen inside.
|
|
66
|
+
*/
|
|
67
|
+
export declare function dispatchToolWrapper(args: DispatchToolWrapperArgs, deps: ToolWrapperDeps): Promise<WrapperResult>;
|
|
68
|
+
/**
|
|
69
|
+
* Strips internal fields (`reasoning`) from a wrapper result before it crosses
|
|
70
|
+
* back into the parent agent's context, and caps the `result` field so the
|
|
71
|
+
* outer JSON envelope stays parseable when the wrapper output is large. The
|
|
72
|
+
* reasoning array is already persisted to the JSONL trace via
|
|
73
|
+
* {@link appendReasoningLog}; the parent doesn't need it.
|
|
74
|
+
*
|
|
75
|
+
* The cap is applied to the `result` field *before* serialization rather than
|
|
76
|
+
* to the serialized envelope, so a truncated payload never produces invalid
|
|
77
|
+
* JSON.
|
|
78
|
+
*/
|
|
79
|
+
export declare function renderWrapperParentView(wrapped: WrapperResult, maxChars?: number): string;
|
|
80
|
+
/**
|
|
81
|
+
* Creates the `tool_wrapper_run` tool for structured, isolated tool-wrapper
|
|
82
|
+
* specialist execution with validated JSON output and failure-learning.
|
|
83
|
+
*
|
|
84
|
+
* Unlike `specialist_run` (plain-text persona execution), this dispatch:
|
|
85
|
+
* - only runs specialists with `kind` in `'tool-wrapper' | 'meta'`
|
|
86
|
+
* - restricts the child's tool set to the specialist's `targetTools`
|
|
87
|
+
* - injects OS context + good/bad examples + structured-output rules
|
|
88
|
+
* - forces a JSON final message via `experimental_prepareStep`
|
|
89
|
+
* - parses through a Zod schema and logs runs that reach `generateText`
|
|
90
|
+
* to the reasoning log (guard failures return early without logging)
|
|
91
|
+
* - enqueues a correction candidate on error for end-of-session learning
|
|
92
|
+
* - strips `reasoning` and caps the JSON envelope before returning to the
|
|
93
|
+
* parent agent — the full reasoning lives in the JSONL trace only
|
|
94
|
+
*/
|
|
95
|
+
export declare function createToolWrapperRunTool(config: BernardConfig, options: ToolOptions, memoryStore: MemoryStore, specialistStore: SpecialistStore, correctionStore: CorrectionCandidateStore, mcpTools?: Record<string, any>, ragStore?: RAGStore, routineStore?: RoutineStore, candidateStore?: CandidateStoreReader): import("ai").Tool<z.ZodObject<{
|
|
96
|
+
specialistId: z.ZodString;
|
|
97
|
+
input: z.ZodString;
|
|
98
|
+
context: z.ZodOptional<z.ZodString>;
|
|
99
|
+
provider: z.ZodOptional<z.ZodString>;
|
|
100
|
+
model: z.ZodOptional<z.ZodString>;
|
|
101
|
+
}, "strip", z.ZodTypeAny, {
|
|
102
|
+
input: string;
|
|
103
|
+
specialistId: string;
|
|
104
|
+
provider?: string | undefined;
|
|
105
|
+
model?: string | undefined;
|
|
106
|
+
context?: string | undefined;
|
|
107
|
+
}, {
|
|
108
|
+
input: string;
|
|
109
|
+
specialistId: string;
|
|
110
|
+
provider?: string | undefined;
|
|
111
|
+
model?: string | undefined;
|
|
112
|
+
context?: string | undefined;
|
|
113
|
+
}>, string> & {
|
|
114
|
+
execute: (args: {
|
|
115
|
+
input: string;
|
|
116
|
+
specialistId: string;
|
|
117
|
+
provider?: string | undefined;
|
|
118
|
+
model?: string | undefined;
|
|
119
|
+
context?: string | undefined;
|
|
120
|
+
}, options: import("ai").ToolExecutionOptions) => PromiseLike<string>;
|
|
121
|
+
};
|