@sweny-ai/core 0.1.178 → 0.1.179

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.
@@ -181,6 +181,45 @@ export const github = {
181
181
  return gh(`/search/issues?q=${encodeURIComponent(q)}&per_page=20`, ctx);
182
182
  },
183
183
  },
184
+ {
185
+ name: "github_list_issues",
186
+ access: "read",
187
+ description: "List a repository's most recently created issues (open and closed), newest first",
188
+ input_schema: {
189
+ type: "object",
190
+ properties: {
191
+ repo: { type: "string", description: "owner/repo" },
192
+ per_page: { type: "number", description: "How many per page (max 100, default 30)" },
193
+ page: { type: "number", description: "Page number, from 1 (default 1)" },
194
+ },
195
+ required: ["repo"],
196
+ },
197
+ handler: async (input, ctx) => {
198
+ const n = Math.min(100, Math.max(1, Math.floor(input.per_page ?? 30)));
199
+ const page = Math.max(1, Math.floor(input.page ?? 1));
200
+ return gh(`/repos/${input.repo}/issues?state=all&sort=created&direction=desc&per_page=${n}&page=${page}`, ctx);
201
+ },
202
+ },
203
+ {
204
+ name: "github_list_issue_comments",
205
+ access: "read",
206
+ description: "List comments on an issue or pull request, optionally only those updated since a time",
207
+ input_schema: {
208
+ type: "object",
209
+ properties: {
210
+ repo: { type: "string", description: "owner/repo" },
211
+ issue_number: { type: "number", description: "Issue or PR number" },
212
+ since: { type: "string", description: "ISO 8601 time: only comments updated at or after it" },
213
+ page: { type: "number", description: "Page of 100 comments, oldest first, from 1 (default 1)" },
214
+ },
215
+ required: ["repo", "issue_number"],
216
+ },
217
+ handler: async (input, ctx) => {
218
+ const since = input.since ? `&since=${encodeURIComponent(input.since)}` : "";
219
+ const page = Math.max(1, Math.floor(input.page ?? 1));
220
+ return gh(`/repos/${input.repo}/issues/${Number(input.issue_number)}/comments?per_page=100&page=${page}${since}`, ctx);
221
+ },
222
+ },
184
223
  {
185
224
  name: "github_create_issue",
186
225
  access: "write",
package/dist/types.d.ts CHANGED
@@ -727,6 +727,12 @@ export interface NodeResult {
727
727
  * Claude Code harness only; absent for harnesses that do not report it.
728
728
  */
729
729
  policy?: NodePolicyFacts;
730
+ /**
731
+ * The agent ran inside an enforced sandbox that keeps it out of the sweny
732
+ * state dir (run keys and journals). Set by the harness adapters; absent
733
+ * (treated as not contained) for anything that does not report it.
734
+ */
735
+ contained?: boolean;
730
736
  /** Safe outputs (#365): what the write stage did with each intent. Absent when the node declares none. */
731
737
  outputs?: SafeOutputReceipt[];
732
738
  /**
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sweny-ai/core",
3
- "version": "0.1.178",
3
+ "version": "0.1.179",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "sweny": "./dist/cli/main.js"