@kody-ade/kody-engine 0.4.118 → 0.4.120

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/dist/bin/kody.js CHANGED
@@ -880,7 +880,7 @@ var init_loadPriorArt = __esm({
880
880
  // package.json
881
881
  var package_default = {
882
882
  name: "@kody-ade/kody-engine",
883
- version: "0.4.118",
883
+ version: "0.4.120",
884
884
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
885
885
  license: "MIT",
886
886
  type: "module",
@@ -1241,10 +1241,18 @@ var GITHUB_AUTHOR_ASSOCIATIONS = [
1241
1241
  "MANNEQUIN",
1242
1242
  "NONE"
1243
1243
  ];
1244
+ var DEFAULT_ALLOWED_ASSOCIATIONS = ["OWNER", "MEMBER", "COLLABORATOR"];
1244
1245
  function parseAccessConfig(raw) {
1245
- if (!raw || typeof raw !== "object") return void 0;
1246
+ if (raw === void 0 || raw === null) {
1247
+ return { allowedAssociations: [...DEFAULT_ALLOWED_ASSOCIATIONS] };
1248
+ }
1249
+ if (typeof raw !== "object") {
1250
+ throw new Error(`kody.config.json: access must be an object`);
1251
+ }
1246
1252
  const r = raw;
1247
- if (r.allowedAssociations === void 0) return void 0;
1253
+ if (r.allowedAssociations === void 0) {
1254
+ return { allowedAssociations: [...DEFAULT_ALLOWED_ASSOCIATIONS] };
1255
+ }
1248
1256
  if (!Array.isArray(r.allowedAssociations)) {
1249
1257
  throw new Error(`kody.config.json: access.allowedAssociations must be an array of strings`);
1250
1258
  }
@@ -1262,7 +1270,7 @@ function parseAccessConfig(raw) {
1262
1270
  }
1263
1271
  out.push(up);
1264
1272
  }
1265
- return out.length > 0 ? { allowedAssociations: out } : void 0;
1273
+ return { allowedAssociations: out };
1266
1274
  }
1267
1275
  function parseQaConfig(raw) {
1268
1276
  if (!raw || typeof raw !== "object") return void 0;
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -404,6 +404,22 @@
404
404
  },
405
405
  "additionalProperties": false
406
406
  },
407
+ "access": {
408
+ "type": "object",
409
+ "description": "Who may trigger kody via an @kody comment. Gates on the GitHub comment.author_association already present on the issue_comment event (no API call, no read:org token).",
410
+ "properties": {
411
+ "allowedAssociations": {
412
+ "type": "array",
413
+ "items": {
414
+ "type": "string",
415
+ "enum": ["OWNER", "MEMBER", "COLLABORATOR", "CONTRIBUTOR", "FIRST_TIME_CONTRIBUTOR", "FIRST_TIMER", "MANNEQUIN", "NONE"]
416
+ },
417
+ "description": "Allowlist of author_association values permitted to trigger kody. OMIT this key for the secure default — only the team (OWNER, MEMBER, COLLABORATOR) may trigger; public drive-by comments are silently ignored. A non-empty list overrides which associations are allowed. An explicit empty list ([]) DISABLES the gate (anyone may trigger). MEMBER applies only to org-owned repos; on a user-owned repo the owner is OWNER and invited people are COLLABORATOR.",
418
+ "default": ["OWNER", "MEMBER", "COLLABORATOR"]
419
+ }
420
+ },
421
+ "additionalProperties": false
422
+ },
407
423
  "qa": {
408
424
  "type": "object",
409
425
  "description": "qa-engineer defaults. Used by the resolveQaUrl preflight when no explicit --url is passed and no $PREVIEW_URL env var is set.",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.118",
3
+ "version": "0.4.120",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -12,23 +12,6 @@
12
12
  "templates",
13
13
  "kody.config.schema.json"
14
14
  ],
15
- "scripts": {
16
- "kody:run": "tsx bin/kody.ts",
17
- "serve": "tsx bin/kody.ts serve",
18
- "serve:vscode": "tsx bin/kody.ts serve vscode",
19
- "serve:claude": "tsx bin/kody.ts serve claude",
20
- "build": "tsup && node scripts/copy-assets.cjs",
21
- "check:modularity": "tsx scripts/check-script-modularity.ts",
22
- "pretest": "pnpm check:modularity",
23
- "test": "vitest run tests/unit tests/int --no-coverage",
24
- "test:e2e": "vitest run tests/e2e --no-coverage",
25
- "test:all": "vitest run tests --no-coverage",
26
- "typecheck": "tsc --noEmit",
27
- "lint": "biome check",
28
- "lint:fix": "biome check --write",
29
- "format": "biome format --write",
30
- "prepublishOnly": "pnpm build"
31
- },
32
15
  "dependencies": {
33
16
  "@actions/cache": "^6.0.0",
34
17
  "@anthropic-ai/claude-agent-sdk": "0.2.119",
@@ -50,5 +33,21 @@
50
33
  "url": "git+https://github.com/aharonyaircohen/kody-engine.git"
51
34
  },
52
35
  "homepage": "https://github.com/aharonyaircohen/kody-engine",
53
- "bugs": "https://github.com/aharonyaircohen/kody-engine/issues"
54
- }
36
+ "bugs": "https://github.com/aharonyaircohen/kody-engine/issues",
37
+ "scripts": {
38
+ "kody:run": "tsx bin/kody.ts",
39
+ "serve": "tsx bin/kody.ts serve",
40
+ "serve:vscode": "tsx bin/kody.ts serve vscode",
41
+ "serve:claude": "tsx bin/kody.ts serve claude",
42
+ "build": "tsup && node scripts/copy-assets.cjs",
43
+ "check:modularity": "tsx scripts/check-script-modularity.ts",
44
+ "pretest": "pnpm check:modularity",
45
+ "test": "vitest run tests/unit tests/int --no-coverage",
46
+ "test:e2e": "vitest run tests/e2e --no-coverage",
47
+ "test:all": "vitest run tests --no-coverage",
48
+ "typecheck": "tsc --noEmit",
49
+ "lint": "biome check",
50
+ "lint:fix": "biome check --write",
51
+ "format": "biome format --write"
52
+ }
53
+ }
@@ -90,4 +90,4 @@ jobs:
90
90
  INIT_MESSAGE: ${{ inputs.message }}
91
91
  MODEL: ${{ inputs.model }}
92
92
  DASHBOARD_URL: ${{ inputs.dashboardUrl }}
93
- run: npx -y -p @kody-ade/kody-engine@0.4.109 kody-engine
93
+ run: npx -y -p @kody-ade/kody-engine@0.4.120 kody-engine