@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 CHANGED
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.5.1 - 2026-11-07
4
+
5
+ ### Changed
6
+
7
+ - Require Effect 4.1.1 and its matching platform packages.
8
+
3
9
  ## 0.5.0 - 2026-11-06
4
10
 
5
11
  ### Breaking
@@ -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,EAAqB,MAAM,cAAc,CAAC;AAG3D,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;AAcD,eAAO,MAAM,WAAW,+SAatB,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"}
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"}
@@ -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(server, options) }, path: "/session", query })
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 })
@@ -1 +1 @@
1
- {"version":3,"file":"sessionOpen.js","sourceRoot":"","sources":["../src/sessionOpen.ts"],"names":[],"mappings":"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"}
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.0",
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.0",
44
- "@shivaedev/http": "0.8.0"
43
+ "@shivaedev/agent": "0.4.1",
44
+ "@shivaedev/http": "0.8.1"
45
45
  },
46
46
  "devDependencies": {
47
- "@effect/platform-node": "4.1.0",
48
- "@effect/vitest": "4.1.0",
47
+ "@effect/platform-node": "4.1.1",
48
+ "@effect/vitest": "4.1.1",
49
49
  "@modelcontextprotocol/sdk": "1.32.2",
50
- "@shivaedev/quality": "0.67.0",
51
- "@shivaedev/test-story": "0.43.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.0",
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.0",
58
+ "@effect/platform-node": "4.1.1",
59
59
  "@modelcontextprotocol/sdk": "1.32.2",
60
- "effect": "4.1.0"
60
+ "effect": "4.1.1"
61
61
  },
62
62
  "peerDependenciesMeta": {
63
63
  "@effect/platform-node": {
@@ -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, type ProviderPort } from "#Provider.ts";
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(server, options) }, path: "/session", query })
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