@shivaedev/agent-opencode 0.5.0 → 0.5.1
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/dist/sessionOpen.d.ts.map +1 -1
- package/dist/sessionOpen.js +8 -8
- package/dist/sessionOpen.js.map +1 -1
- package/package.json +10 -10
- package/src/sessionOpen.ts +10 -9
package/CHANGELOG.md
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionOpen.d.ts","sourceRoot":"","sources":["../src/sessionOpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"sessionOpen.d.ts","sourceRoot":"","sources":["../src/sessionOpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkB,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAE,QAAQ,IAAI,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAKnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAGxC,MAAM,WAAW,cAAc;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE;QAChB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;QAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;KAC9B,CAAC;IACF,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC1B;AAOD,wBAAgB,cAAc,CAAC,OAAO,EAAE,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,cAAc,CAAC,CAOzG;AAOD,eAAO,MAAM,WAAW,+SAqBtB,CAAC;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAKnG;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,UAAU,CAM7F"}
|
package/dist/sessionOpen.js
CHANGED
|
@@ -25,19 +25,19 @@ function onlyGivenTools(tools) {
|
|
|
25
25
|
...tools.map((tool) => ({ action: "allow", pattern: "*", permission: wireName(tool.name) })),
|
|
26
26
|
];
|
|
27
27
|
}
|
|
28
|
-
function withoutOtherTools(server, tools) {
|
|
29
|
-
const given = new Set(tools.map((tool) => tool.name));
|
|
30
|
-
return server.tools.names.filter((name) => !given.has(name)).map((name) => ({ action: "deny", pattern: "*", permission: wireName(name) }));
|
|
31
|
-
}
|
|
32
|
-
function permissions(server, options) {
|
|
33
|
-
return options.constrainedPrompt === undefined ? withoutOtherTools(server, options.tools) : onlyGivenTools(options.tools);
|
|
34
|
-
}
|
|
35
28
|
export const openSession = Effect.fnUntraced(function* (options) {
|
|
36
29
|
const server = yield* Provider;
|
|
30
|
+
function withoutOtherTools(tools) {
|
|
31
|
+
const given = new Set(tools.map((tool) => tool.name));
|
|
32
|
+
return server.tools.names.filter((name) => !given.has(name)).map((name) => ({ action: "deny", pattern: "*", permission: wireName(name) }));
|
|
33
|
+
}
|
|
34
|
+
function permissions() {
|
|
35
|
+
return options.constrainedPrompt === undefined ? withoutOtherTools(options.tools) : onlyGivenTools(options.tools);
|
|
36
|
+
}
|
|
37
37
|
const query = { directory: options.cwd };
|
|
38
38
|
return yield* Option.match(options.resume, {
|
|
39
39
|
onNone: () => server
|
|
40
|
-
.post({ body: { permission: permissions(
|
|
40
|
+
.post({ body: { permission: permissions() }, path: "/session", query })
|
|
41
41
|
.pipe(Effect.map((response) => ["POST /session", response])),
|
|
42
42
|
onSome: (sessionId) => server
|
|
43
43
|
.get({ body: undefined, path: `/session/${sessionId}`, query })
|
package/dist/sessionOpen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessionOpen.js","sourceRoot":"","sources":["../src/sessionOpen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,OAAO,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"sessionOpen.js","sourceRoot":"","sources":["../src/sessionOpen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shivaedev/agent-opencode",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "OpenCode integration for Effect applications",
|
|
5
5
|
"homepage": "https://github.com/ShivaeDev/platform/tree/main/packages/agent-opencode#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -40,24 +40,24 @@
|
|
|
40
40
|
"README.md"
|
|
41
41
|
],
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@shivaedev/agent": "0.4.
|
|
44
|
-
"@shivaedev/http": "0.8.
|
|
43
|
+
"@shivaedev/agent": "0.4.1",
|
|
44
|
+
"@shivaedev/http": "0.8.1"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@effect/platform-node": "4.1.
|
|
48
|
-
"@effect/vitest": "4.1.
|
|
47
|
+
"@effect/platform-node": "4.1.1",
|
|
48
|
+
"@effect/vitest": "4.1.1",
|
|
49
49
|
"@modelcontextprotocol/sdk": "1.32.2",
|
|
50
|
-
"@shivaedev/quality": "0.
|
|
51
|
-
"@shivaedev/test-story": "0.
|
|
50
|
+
"@shivaedev/quality": "0.70.1",
|
|
51
|
+
"@shivaedev/test-story": "0.45.2",
|
|
52
52
|
"@types/node": "24.19.2",
|
|
53
|
-
"effect": "4.1.
|
|
53
|
+
"effect": "4.1.1",
|
|
54
54
|
"typescript": "7.0.2",
|
|
55
55
|
"vitest": "5.0.5"
|
|
56
56
|
},
|
|
57
57
|
"peerDependencies": {
|
|
58
|
-
"@effect/platform-node": "4.1.
|
|
58
|
+
"@effect/platform-node": "4.1.1",
|
|
59
59
|
"@modelcontextprotocol/sdk": "1.32.2",
|
|
60
|
-
"effect": "4.1.
|
|
60
|
+
"effect": "4.1.1"
|
|
61
61
|
},
|
|
62
62
|
"peerDependenciesMeta": {
|
|
63
63
|
"@effect/platform-node": {
|
package/src/sessionOpen.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { SessionResponse } from "#adapters/protocol.ts";
|
|
|
6
6
|
import { CONSTRAINED_AGENT, wireName } from "#adapters/wireName.ts";
|
|
7
7
|
import { opencodeFailure } from "#failure.ts";
|
|
8
8
|
import type { OpenSessionOptions } from "#options.ts";
|
|
9
|
-
import { Provider
|
|
9
|
+
import { Provider } from "#Provider.ts";
|
|
10
10
|
|
|
11
11
|
const decodeSession = Schema.decodeUnknownOption(SessionResponse);
|
|
12
12
|
export interface PromptSettings {
|
|
@@ -38,20 +38,21 @@ function onlyGivenTools(tools: OpenSessionOptions["tools"]) {
|
|
|
38
38
|
...tools.map((tool) => ({ action: "allow", pattern: "*", permission: wireName(tool.name) })),
|
|
39
39
|
];
|
|
40
40
|
}
|
|
41
|
-
function withoutOtherTools(server: ProviderPort, tools: OpenSessionOptions["tools"]) {
|
|
42
|
-
const given = new Set(tools.map((tool) => tool.name));
|
|
43
|
-
return server.tools.names.filter((name) => !given.has(name)).map((name) => ({ action: "deny", pattern: "*", permission: wireName(name) }));
|
|
44
|
-
}
|
|
45
|
-
function permissions(server: ProviderPort, options: OpenSessionOptions) {
|
|
46
|
-
return options.constrainedPrompt === undefined ? withoutOtherTools(server, options.tools) : onlyGivenTools(options.tools);
|
|
47
|
-
}
|
|
48
41
|
export const openSession = Effect.fnUntraced(function* (options: OpenSessionOptions) {
|
|
49
42
|
const server = yield* Provider;
|
|
43
|
+
function withoutOtherTools(tools: OpenSessionOptions["tools"]) {
|
|
44
|
+
const given = new Set(tools.map((tool) => tool.name));
|
|
45
|
+
return server.tools.names.filter((name) => !given.has(name)).map((name) => ({ action: "deny", pattern: "*", permission: wireName(name) }));
|
|
46
|
+
}
|
|
47
|
+
function permissions() {
|
|
48
|
+
return options.constrainedPrompt === undefined ? withoutOtherTools(options.tools) : onlyGivenTools(options.tools);
|
|
49
|
+
}
|
|
50
|
+
|
|
50
51
|
const query = { directory: options.cwd };
|
|
51
52
|
return yield* Option.match(options.resume, {
|
|
52
53
|
onNone: () =>
|
|
53
54
|
server
|
|
54
|
-
.post({ body: { permission: permissions(
|
|
55
|
+
.post({ body: { permission: permissions() }, path: "/session", query })
|
|
55
56
|
.pipe(Effect.map((response) => ["POST /session", response] as const)),
|
|
56
57
|
onSome: (sessionId) =>
|
|
57
58
|
server
|