@shivaedev/agent-opencode 0.1.0 → 0.2.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/CHANGELOG.md +6 -0
- package/README.md +58 -1
- package/dist/Provider.d.ts +16 -0
- package/dist/Provider.d.ts.map +1 -0
- package/dist/Provider.js +4 -0
- package/dist/Provider.js.map +1 -0
- package/dist/adapters/MessageUpdatedProperties.d.ts +10 -0
- package/dist/adapters/MessageUpdatedProperties.d.ts.map +1 -0
- package/dist/adapters/MessageUpdatedProperties.js +10 -0
- package/dist/adapters/MessageUpdatedProperties.js.map +1 -0
- package/dist/adapters/OpencodeRequest.d.ts +6 -0
- package/dist/adapters/OpencodeRequest.d.ts.map +1 -0
- package/dist/adapters/OpencodeRequest.js +2 -0
- package/dist/adapters/OpencodeRequest.js.map +1 -0
- package/dist/adapters/answerToolRequest.d.ts +4 -0
- package/dist/adapters/answerToolRequest.d.ts.map +1 -0
- package/dist/adapters/answerToolRequest.js +106 -0
- package/dist/adapters/answerToolRequest.js.map +1 -0
- package/dist/adapters/listeningUrl.d.ts +2 -0
- package/dist/adapters/listeningUrl.d.ts.map +1 -0
- package/dist/adapters/listeningUrl.js +5 -0
- package/dist/adapters/listeningUrl.js.map +1 -0
- package/dist/adapters/makeOpencodeServer.d.ts +7 -0
- package/dist/adapters/makeOpencodeServer.d.ts.map +1 -0
- package/dist/adapters/makeOpencodeServer.js +49 -0
- package/dist/adapters/makeOpencodeServer.js.map +1 -0
- package/dist/adapters/mapping.d.ts +7 -0
- package/dist/adapters/mapping.d.ts.map +1 -0
- package/dist/adapters/mapping.js +11 -0
- package/dist/adapters/mapping.js.map +1 -0
- package/dist/adapters/messageAuthors.d.ts +11 -0
- package/dist/adapters/messageAuthors.d.ts.map +1 -0
- package/dist/adapters/messageAuthors.js +24 -0
- package/dist/adapters/messageAuthors.js.map +1 -0
- package/dist/adapters/openSseBuffer.d.ts +6 -0
- package/dist/adapters/openSseBuffer.d.ts.map +1 -0
- package/dist/adapters/openSseBuffer.js +34 -0
- package/dist/adapters/openSseBuffer.js.map +1 -0
- package/dist/adapters/openTurnBoundary.d.ts +11 -0
- package/dist/adapters/openTurnBoundary.d.ts.map +1 -0
- package/dist/adapters/openTurnBoundary.js +46 -0
- package/dist/adapters/openTurnBoundary.js.map +1 -0
- package/dist/adapters/opencodePlugin.config.d.ts +11 -0
- package/dist/adapters/opencodePlugin.config.d.ts.map +1 -0
- package/dist/adapters/opencodePlugin.config.js +9 -0
- package/dist/adapters/opencodePlugin.config.js.map +1 -0
- package/dist/adapters/partEvents.d.ts +7 -0
- package/dist/adapters/partEvents.d.ts.map +1 -0
- package/dist/adapters/partEvents.js +62 -0
- package/dist/adapters/partEvents.js.map +1 -0
- package/dist/adapters/projection.d.ts +7 -0
- package/dist/adapters/projection.d.ts.map +1 -0
- package/dist/adapters/projection.js +41 -0
- package/dist/adapters/projection.js.map +1 -0
- package/dist/adapters/protocol.d.ts +36 -0
- package/dist/adapters/protocol.d.ts.map +1 -0
- package/dist/adapters/protocol.js +32 -0
- package/dist/adapters/protocol.js.map +1 -0
- package/dist/adapters/protocolParts.d.ts +48 -0
- package/dist/adapters/protocolParts.d.ts.map +1 -0
- package/dist/adapters/protocolParts.js +47 -0
- package/dist/adapters/protocolParts.js.map +1 -0
- package/dist/adapters/providerAddress.d.ts +5 -0
- package/dist/adapters/providerAddress.d.ts.map +1 -0
- package/dist/adapters/providerAddress.js +21 -0
- package/dist/adapters/providerAddress.js.map +1 -0
- package/dist/adapters/serveOpencode.d.ts +13 -0
- package/dist/adapters/serveOpencode.d.ts.map +1 -0
- package/dist/adapters/serveOpencode.js +75 -0
- package/dist/adapters/serveOpencode.js.map +1 -0
- package/dist/adapters/serveToolRequests.d.ts +4 -0
- package/dist/adapters/serveToolRequests.d.ts.map +1 -0
- package/dist/adapters/serveToolRequests.js +23 -0
- package/dist/adapters/serveToolRequests.js.map +1 -0
- package/dist/adapters/servedTools.d.ts +4 -0
- package/dist/adapters/servedTools.d.ts.map +1 -0
- package/dist/adapters/servedTools.js +9 -0
- package/dist/adapters/servedTools.js.map +1 -0
- package/dist/adapters/sessionFrames.d.ts +7 -0
- package/dist/adapters/sessionFrames.d.ts.map +1 -0
- package/dist/adapters/sessionFrames.js +16 -0
- package/dist/adapters/sessionFrames.js.map +1 -0
- package/dist/adapters/toolEvents.d.ts +10 -0
- package/dist/adapters/toolEvents.d.ts.map +1 -0
- package/dist/adapters/toolEvents.js +30 -0
- package/dist/adapters/toolEvents.js.map +1 -0
- package/dist/adapters/toolNames.d.ts +6 -0
- package/dist/adapters/toolNames.d.ts.map +1 -0
- package/dist/adapters/toolNames.js +8 -0
- package/dist/adapters/toolNames.js.map +1 -0
- package/dist/adapters/toolSessions.d.ts +11 -0
- package/dist/adapters/toolSessions.d.ts.map +1 -0
- package/dist/adapters/toolSessions.js +15 -0
- package/dist/adapters/toolSessions.js.map +1 -0
- package/dist/callWhileOpen.d.ts +4 -0
- package/dist/callWhileOpen.d.ts.map +1 -0
- package/dist/callWhileOpen.js +9 -0
- package/dist/callWhileOpen.js.map +1 -0
- package/dist/failure.d.ts +4 -0
- package/dist/failure.d.ts.map +1 -0
- package/dist/failure.js +8 -0
- package/dist/failure.js.map +1 -0
- package/dist/listOpencodeModels.d.ts +11 -0
- package/dist/listOpencodeModels.d.ts.map +1 -0
- package/dist/listOpencodeModels.js +31 -0
- package/dist/listOpencodeModels.js.map +1 -0
- package/dist/openOpencodeSession.d.ts +5 -0
- package/dist/openOpencodeSession.d.ts.map +1 -0
- package/dist/openOpencodeSession.js +40 -0
- package/dist/openOpencodeSession.js.map +1 -0
- package/dist/opencode.d.ts +9 -1
- package/dist/opencode.d.ts.map +1 -1
- package/dist/opencode.js +49 -1
- package/dist/opencode.js.map +1 -1
- package/dist/operations.d.ts +367 -0
- package/dist/operations.d.ts.map +1 -0
- package/dist/operations.js +87 -0
- package/dist/operations.js.map +1 -0
- package/dist/options.d.ts +30 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +2 -0
- package/dist/options.js.map +1 -0
- package/dist/sessionOpen.d.ts +19 -0
- package/dist/sessionOpen.d.ts.map +1 -0
- package/dist/sessionOpen.js +60 -0
- package/dist/sessionOpen.js.map +1 -0
- package/dist/tools.d.ts +14 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +2 -0
- package/dist/tools.js.map +1 -0
- package/dist/turnRequests.d.ts +13 -0
- package/dist/turnRequests.d.ts.map +1 -0
- package/dist/turnRequests.js +19 -0
- package/dist/turnRequests.js.map +1 -0
- package/dist/turnState.d.ts +24 -0
- package/dist/turnState.d.ts.map +1 -0
- package/dist/turnState.js +27 -0
- package/dist/turnState.js.map +1 -0
- package/dist/turns.d.ts +19 -0
- package/dist/turns.d.ts.map +1 -0
- package/dist/turns.js +57 -0
- package/dist/turns.js.map +1 -0
- package/package.json +33 -4
- package/src/Provider.ts +14 -0
- package/src/adapters/MessageUpdatedProperties.ts +9 -0
- package/src/adapters/OpencodeRequest.ts +5 -0
- package/src/adapters/answerToolRequest.ts +121 -0
- package/src/adapters/listeningUrl.ts +4 -0
- package/src/adapters/makeOpencodeServer.ts +77 -0
- package/src/adapters/mapping.ts +14 -0
- package/src/adapters/messageAuthors.ts +31 -0
- package/src/adapters/openSseBuffer.ts +36 -0
- package/src/adapters/openTurnBoundary.ts +58 -0
- package/src/adapters/opencodePlugin.config.ts +17 -0
- package/src/adapters/partEvents.ts +85 -0
- package/src/adapters/projection.ts +46 -0
- package/src/adapters/protocol.ts +31 -0
- package/src/adapters/protocolParts.ts +48 -0
- package/src/adapters/providerAddress.ts +22 -0
- package/src/adapters/serveOpencode.ts +93 -0
- package/src/adapters/serveToolRequests.ts +24 -0
- package/src/adapters/servedTools.ts +11 -0
- package/src/adapters/sessionFrames.ts +25 -0
- package/src/adapters/toolEvents.ts +42 -0
- package/src/adapters/toolNames.ts +7 -0
- package/src/adapters/toolSessions.ts +22 -0
- package/src/callWhileOpen.ts +16 -0
- package/src/failure.ts +7 -0
- package/src/listOpencodeModels.ts +34 -0
- package/src/openOpencodeSession.ts +60 -0
- package/src/opencode.ts +61 -1
- package/src/operations.ts +111 -0
- package/src/options.ts +29 -0
- package/src/sessionOpen.ts +74 -0
- package/src/tools.ts +13 -0
- package/src/turnRequests.ts +25 -0
- package/src/turnState.ts +41 -0
- package/src/turns.ts +89 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolNames.d.ts","sourceRoot":"","sources":["../../src/adapters/toolNames.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,kBAAkB,CAAC;AAC9C,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAC5C,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAC3C,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE7C"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export const CALLER_SESSION = "callerSession";
|
|
2
|
+
export const CALLER_CALL = "callerCall";
|
|
3
|
+
export const CONSTRAINED_AGENT = "platform";
|
|
4
|
+
export const TOOL_SERVER_NAME = "platform";
|
|
5
|
+
export function wireName(name) {
|
|
6
|
+
return `${TOOL_SERVER_NAME}_${name}`;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=toolNames.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolNames.js","sourceRoot":"","sources":["../../src/adapters/toolNames.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,eAAe,CAAC;AAC9C,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAC3C,MAAM,UAAU,QAAQ,CAAC,IAAY;IACpC,OAAO,GAAG,gBAAgB,IAAI,IAAI,EAAE,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
2
|
+
import type { ToolOutcome as DirectToolOutcome } from "#tools.ts";
|
|
3
|
+
export type ServedTool = (callId: string, args: unknown) => Promise<DirectToolOutcome>;
|
|
4
|
+
export interface ToolSessions {
|
|
5
|
+
readonly forget: (session: string) => void;
|
|
6
|
+
readonly names: readonly string[];
|
|
7
|
+
readonly remember: (session: string, tools: ReadonlyMap<string, ServedTool>) => void;
|
|
8
|
+
readonly served: (session: string) => Option.Option<ReadonlyMap<string, ServedTool>>;
|
|
9
|
+
}
|
|
10
|
+
export declare function makeToolSessions(names: readonly string[]): ToolSessions;
|
|
11
|
+
//# sourceMappingURL=toolSessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolSessions.d.ts","sourceRoot":"","sources":["../../src/adapters/toolSessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAClE,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,iBAAiB,CAAC,CAAC;AACvF,MAAM,WAAW,YAAY;IAC5B,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACrF,QAAQ,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;CACrF;AACD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,YAAY,CAYvE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Option } from "effect";
|
|
2
|
+
export function makeToolSessions(names) {
|
|
3
|
+
const open = new Map();
|
|
4
|
+
return {
|
|
5
|
+
forget: (session) => {
|
|
6
|
+
open.delete(session);
|
|
7
|
+
},
|
|
8
|
+
names,
|
|
9
|
+
remember: (session, tools) => {
|
|
10
|
+
open.set(session, tools);
|
|
11
|
+
},
|
|
12
|
+
served: (session) => Option.fromNullishOr(open.get(session)),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=toolSessions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toolSessions.js","sourceRoot":"","sources":["../../src/adapters/toolSessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAShC,MAAM,UAAU,gBAAgB,CAAC,KAAwB;IACxD,MAAM,IAAI,GAAG,IAAI,GAAG,EAA2C,CAAC;IAChE,OAAO;QACN,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE;YACnB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtB,CAAC;QACD,KAAK;QACL,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1B,CAAC;QACD,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;KAC5D,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Effect, type Scope } from "effect";
|
|
2
|
+
import type { DirectTool, ToolOutcome } from "#tools.ts";
|
|
3
|
+
export declare function callWhileOpen(tool: DirectTool, callId: string, args: unknown): Effect.Effect<ToolOutcome, never, Scope.Scope>;
|
|
4
|
+
//# sourceMappingURL=callWhileOpen.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callWhileOpen.d.ts","sourceRoot":"","sources":["../src/callWhileOpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAe,KAAK,KAAK,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAMzD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAQ7H"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { Effect, Exit, Fiber } from "effect";
|
|
2
|
+
const closed = {
|
|
3
|
+
ok: false,
|
|
4
|
+
text: "the session that served this tool closed before the call finished",
|
|
5
|
+
};
|
|
6
|
+
export function callWhileOpen(tool, callId, args) {
|
|
7
|
+
return Effect.flatMap(Effect.scope, (scope) => tool.call(callId, args).pipe(Effect.forkIn(scope), Effect.flatMap(Fiber.await), Effect.flatMap((exit) => (Exit.hasInterrupts(exit) ? Effect.succeed(closed) : exit))));
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=callWhileOpen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callWhileOpen.js","sourceRoot":"","sources":["../src/callWhileOpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAc,MAAM,QAAQ,CAAC;AAGzD,MAAM,MAAM,GAAgB;IAC3B,EAAE,EAAE,KAAK;IACT,IAAI,EAAE,mEAAmE;CACzE,CAAC;AACF,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,MAAc,EAAE,IAAa;IAC5E,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE,CAC7C,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CAC3B,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,EACpB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAC3B,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CACpF,CACD,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { BackendUnavailable, ProtocolFailure } from "@shivaedev/agent/failures.ts";
|
|
2
|
+
export declare function opencodeFailure(detail: unknown): ProtocolFailure;
|
|
3
|
+
export declare function unavailable(detail: unknown): BackendUnavailable;
|
|
4
|
+
//# sourceMappingURL=failure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,wBAAgB,eAAe,CAAC,MAAM,EAAE,OAAO,GAAG,eAAe,CAEhE;AACD,wBAAgB,WAAW,CAAC,MAAM,EAAE,OAAO,GAAG,kBAAkB,CAE/D"}
|
package/dist/failure.js
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BackendUnavailable, ProtocolFailure } from "@shivaedev/agent/failures.ts";
|
|
2
|
+
export function opencodeFailure(detail) {
|
|
3
|
+
return new ProtocolFailure({ backend: "opencode", message: String(detail) });
|
|
4
|
+
}
|
|
5
|
+
export function unavailable(detail) {
|
|
6
|
+
return new BackendUnavailable({ backend: "opencode", message: String(detail) });
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=failure.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"failure.js","sourceRoot":"","sources":["../src/failure.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AACnF,MAAM,UAAU,eAAe,CAAC,MAAe;IAC9C,OAAO,IAAI,eAAe,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC;AACD,MAAM,UAAU,WAAW,CAAC,MAAe;IAC1C,OAAO,IAAI,kBAAkB,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Effect } from "effect";
|
|
2
|
+
import type { ReadFailure as BackendFailure } from "@shivaedev/agent/failures.ts";
|
|
3
|
+
import { Provider } from "#Provider.ts";
|
|
4
|
+
export declare const listOpencodeModels: () => Effect.Effect<readonly {
|
|
5
|
+
readonly defaultEffort?: string | undefined;
|
|
6
|
+
readonly efforts: readonly string[];
|
|
7
|
+
readonly id: string;
|
|
8
|
+
readonly isDefault: boolean;
|
|
9
|
+
readonly name: string;
|
|
10
|
+
}[], BackendFailure, Provider>;
|
|
11
|
+
//# sourceMappingURL=listOpencodeModels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listOpencodeModels.d.ts","sourceRoot":"","sources":["../src/listOpencodeModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAEhD,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGlF,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAyBxC,eAAO,MAAM,kBAAkB;;;;;;8BAG7B,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Effect, Option, Schema } from "effect";
|
|
2
|
+
import { ProvidersResponse } from "#adapters/protocol.ts";
|
|
3
|
+
import { opencodeFailure } from "#failure.ts";
|
|
4
|
+
import { Provider } from "#Provider.ts";
|
|
5
|
+
const decodeProviders = Schema.decodeUnknownOption(ProvidersResponse);
|
|
6
|
+
function catalogued({ default: defaults, providers }) {
|
|
7
|
+
const listed = [];
|
|
8
|
+
let preferred;
|
|
9
|
+
for (const provider of providers) {
|
|
10
|
+
for (const model of Object.values(provider.models)) {
|
|
11
|
+
const id = `${provider.id}/${model.id}`;
|
|
12
|
+
if (preferred === undefined && defaults[provider.id] === model.id) {
|
|
13
|
+
preferred = id;
|
|
14
|
+
}
|
|
15
|
+
listed.push({ efforts: Object.keys(model.variants ?? {}), id, isDefault: false, name: model.name });
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
const standing = preferred ?? listed[0]?.id;
|
|
19
|
+
return listed.map((model) => (model.id === standing ? { ...model, isDefault: true } : model));
|
|
20
|
+
}
|
|
21
|
+
function catalogue(response) {
|
|
22
|
+
return Option.match(decodeProviders(response), {
|
|
23
|
+
onNone: () => Effect.fail(opencodeFailure("GET /config/providers returned no catalog")),
|
|
24
|
+
onSome: (listing) => Effect.succeed(catalogued(listing)),
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
export const listOpencodeModels = Effect.fn("OpenCode.listOpencodeModels")(function* () {
|
|
28
|
+
const server = yield* Provider;
|
|
29
|
+
return yield* server.get({ body: undefined, path: "/config/providers", query: {} }).pipe(Effect.flatMap(catalogue));
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=listOpencodeModels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listOpencodeModels.js","sourceRoot":"","sources":["../src/listOpencodeModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,eAAe,GAAG,MAAM,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,CAAC;AAEtE,SAAS,UAAU,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAa;IAC9D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,SAA6B,CAAC;IAClC,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YACpD,MAAM,EAAE,GAAG,GAAG,QAAQ,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,SAAS,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,EAAE,EAAE,CAAC;gBACnE,SAAS,GAAG,EAAE,CAAC;YAChB,CAAC;YACD,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;QACrG,CAAC;IACF,CAAC;IACD,MAAM,QAAQ,GAAG,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/F,CAAC;AACD,SAAS,SAAS,CAAC,QAAiB;IACnC,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,EAAE;QAC9C,MAAM,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,2CAA2C,CAAC,CAAC;QACvF,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;KACxD,CAAC,CAAC;AACJ,CAAC;AACD,MAAM,CAAC,MAAM,kBAAkB,GAAG,MAAM,CAAC,EAAE,CAAC,6BAA6B,CAAC,CAAC,QAAQ,CAAC;IACnF,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,QAAQ,CAAC;IAC/B,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AACrH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Effect, type Scope } from "effect";
|
|
2
|
+
import type { OpenSessionOptions, SessionHandle } from "#options.ts";
|
|
3
|
+
import { Provider } from "#Provider.ts";
|
|
4
|
+
export declare const openOpencodeSession: (options: OpenSessionOptions) => Effect.Effect<SessionHandle, import("@shivaedev/agent/failures.ts").BackendUnavailable | import("@shivaedev/agent/failures.ts").ProtocolFailure | import("@shivaedev/agent/failures.ts").Rejected | import("@shivaedev/agent/failures.ts").UnknownAcceptance, Provider | Scope.Scope>;
|
|
5
|
+
//# sourceMappingURL=openOpencodeSession.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openOpencodeSession.d.ts","sourceRoot":"","sources":["../src/openOpencodeSession.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,KAAK,KAAK,EAAU,MAAM,QAAQ,CAAC;AAMpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAcxC,eAAO,MAAM,mBAAmB,wTAsC9B,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Effect, Option, PubSub, Stream } from "effect";
|
|
2
|
+
import { openSessionProjection } from "#adapters/projection.ts";
|
|
3
|
+
import { servedTools } from "#adapters/servedTools.ts";
|
|
4
|
+
import { frameFor } from "#adapters/sessionFrames.ts";
|
|
5
|
+
import { Provider } from "#Provider.ts";
|
|
6
|
+
import { openSession, promptSettings, sessionIdOf, sessionOpened } from "#sessionOpen.ts";
|
|
7
|
+
import { turnRequests } from "#turnRequests.ts";
|
|
8
|
+
import { makeTurnDriver } from "#turns.ts";
|
|
9
|
+
function eventsOfFrame(sessionId, projection) {
|
|
10
|
+
return (frame) => Stream.fromIterable(Option.match(frameFor(sessionId, frame), {
|
|
11
|
+
onNone: () => [],
|
|
12
|
+
onSome: projection.events,
|
|
13
|
+
}));
|
|
14
|
+
}
|
|
15
|
+
export const openOpencodeSession = Effect.fn("OpenCode.openOpencodeSession")(function* (options) {
|
|
16
|
+
const server = yield* Provider;
|
|
17
|
+
const settings = yield* promptSettings(options);
|
|
18
|
+
const forEvents = yield* PubSub.subscribe(server.frames);
|
|
19
|
+
const forDriver = yield* PubSub.subscribe(server.frames);
|
|
20
|
+
const [route, response] = yield* openSession(options);
|
|
21
|
+
const sessionId = yield* sessionIdOf(route, response);
|
|
22
|
+
const tools = yield* servedTools(options.tools);
|
|
23
|
+
yield* Effect.acquireRelease(Effect.sync(() => server.tools.remember(sessionId, tools)), () => Effect.sync(() => server.tools.forget(sessionId)));
|
|
24
|
+
const driver = yield* makeTurnDriver(yield* turnRequests(sessionId, options.cwd, settings));
|
|
25
|
+
yield* Effect.forkScoped(server.exited.pipe(Effect.andThen(driver.close)));
|
|
26
|
+
yield* Effect.forkScoped(Stream.fromSubscription(forDriver).pipe(Stream.runForEach((frame) => Option.match(frameFor(sessionId, frame), {
|
|
27
|
+
onNone: () => Effect.void,
|
|
28
|
+
onSome: driver.track,
|
|
29
|
+
}))));
|
|
30
|
+
const projection = openSessionProjection(options.model);
|
|
31
|
+
const events = Stream.make(sessionOpened(route, response, sessionId)).pipe(Stream.concat(Stream.fromSubscription(forEvents).pipe(Stream.flatMap(eventsOfFrame(sessionId, projection)))), Stream.interruptWhen(server.exited));
|
|
32
|
+
return {
|
|
33
|
+
events,
|
|
34
|
+
interrupt: driver.interrupt,
|
|
35
|
+
nativeRef: Effect.succeed(Option.some(sessionId)),
|
|
36
|
+
queue: (input) => driver.queue(input.parts.map((part) => part.text).join("\n")),
|
|
37
|
+
steer: (input) => driver.steer(input.parts.map((part) => part.text).join("\n")),
|
|
38
|
+
};
|
|
39
|
+
});
|
|
40
|
+
//# sourceMappingURL=openOpencodeSession.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openOpencodeSession.js","sourceRoot":"","sources":["../src/openOpencodeSession.ts"],"names":[],"mappings":"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"}
|
package/dist/opencode.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
import { Layer } from "effect";
|
|
2
|
+
import type { ChildProcessSpawner } from "effect/process";
|
|
3
|
+
import { Backend } from "@shivaedev/agent/backend.ts";
|
|
4
|
+
import type { ReadFailure } from "@shivaedev/agent/failures.ts";
|
|
5
|
+
import type { OpencodeOptions } from "#options.ts";
|
|
6
|
+
export declare function opencode(options: OpencodeOptions & {
|
|
7
|
+
readonly url: string;
|
|
8
|
+
}): Layer.Layer<Backend, ReadFailure>;
|
|
9
|
+
export declare function opencode(options: OpencodeOptions): Layer.Layer<Backend, ReadFailure, ChildProcessSpawner.ChildProcessSpawner>;
|
|
2
10
|
//# sourceMappingURL=opencode.d.ts.map
|
package/dist/opencode.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,EAAU,MAAM,QAAQ,CAAC;AAE/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAOhE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEnD,wBAAgB,QAAQ,CACvB,OAAO,EAAE,eAAe,GAAG;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;CACrB,GACC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;AACrC,wBAAgB,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,WAAW,EAAE,mBAAmB,CAAC,mBAAmB,CAAC,CAAC"}
|
package/dist/opencode.js
CHANGED
|
@@ -1,2 +1,50 @@
|
|
|
1
|
-
|
|
1
|
+
import { Effect, Layer, Option } from "effect";
|
|
2
|
+
import { FetchHttpClient } from "effect/http";
|
|
3
|
+
import { Backend } from "@shivaedev/agent/backend.ts";
|
|
4
|
+
import { makeOpencodeServer } from "#adapters/makeOpencodeServer.ts";
|
|
5
|
+
import { providerAddress } from "#adapters/providerAddress.ts";
|
|
6
|
+
import { makeToolSessions } from "#adapters/toolSessions.ts";
|
|
7
|
+
import { opencodeFailure } from "#failure.ts";
|
|
8
|
+
import { listOpencodeModels } from "#listOpencodeModels.ts";
|
|
9
|
+
import { makeOperations } from "#operations.ts";
|
|
10
|
+
import { Provider } from "#Provider.ts";
|
|
11
|
+
export function opencode(options) {
|
|
12
|
+
return Layer.effect(Backend, Effect.gen(function* () {
|
|
13
|
+
const tools = makeToolSessions((options.tools ?? []).map((tool) => tool.name));
|
|
14
|
+
let url = options.url;
|
|
15
|
+
if (url !== undefined && (options.tools?.length || options.sessionTools !== undefined)) {
|
|
16
|
+
return yield* Effect.fail(opencodeFailure("session tool bridging requires a spawned OpenCode server"));
|
|
17
|
+
}
|
|
18
|
+
if (url === undefined) {
|
|
19
|
+
url = yield* providerAddress(options, tools);
|
|
20
|
+
}
|
|
21
|
+
const server = yield* makeOpencodeServer(url, tools);
|
|
22
|
+
const operations = yield* makeOperations(options).pipe(Effect.provideService(Provider, server));
|
|
23
|
+
return {
|
|
24
|
+
backend: "opencode",
|
|
25
|
+
events: operations.events,
|
|
26
|
+
features: {
|
|
27
|
+
imageInput: { reason: "only text input is implemented", support: "unsupported" },
|
|
28
|
+
interruption: {
|
|
29
|
+
implementation: { interrupt: (receipt) => operations.lookup(receipt).pipe(Effect.flatMap((run) => run.session.interrupt)) },
|
|
30
|
+
support: "supported",
|
|
31
|
+
},
|
|
32
|
+
models: { implementation: { list: listOpencodeModels().pipe(Effect.provideService(Provider, server)) }, support: "supported" },
|
|
33
|
+
queuedInput: {
|
|
34
|
+
implementation: { queue: (receipt, input) => operations.lookup(receipt).pipe(Effect.flatMap((run) => run.session.queue(input))) },
|
|
35
|
+
support: "supported",
|
|
36
|
+
},
|
|
37
|
+
sessions: { implementation: { resume: operations.resume }, support: "supported" },
|
|
38
|
+
steering: {
|
|
39
|
+
implementation: { steer: (receipt, input) => operations.lookup(receipt).pipe(Effect.flatMap((run) => run.session.steer(input))) },
|
|
40
|
+
support: "supported",
|
|
41
|
+
},
|
|
42
|
+
transcript: { reason: "no provider history reader is implemented", support: "unsupported" },
|
|
43
|
+
},
|
|
44
|
+
inspect: operations.inspect,
|
|
45
|
+
reconcile: operations.reconcile,
|
|
46
|
+
start: (request) => operations.open(request, Option.none()),
|
|
47
|
+
};
|
|
48
|
+
})).pipe(Layer.provide(FetchHttpClient.layer));
|
|
49
|
+
}
|
|
2
50
|
//# sourceMappingURL=opencode.js.map
|
package/dist/opencode.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../src/opencode.ts"],"names":[],"mappings":"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"}
|