@xn-intenton-z2a/agentic-lib 7.4.45 → 7.4.47

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.
@@ -97,6 +97,11 @@ jobs:
97
97
  sparse-checkout-cone-mode: false
98
98
  - id: resolve
99
99
  uses: actions/github-script@v8
100
+ env:
101
+ INPUT_MODEL: ${{ inputs.model }}
102
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
103
+ INPUT_DISCUSSION_URL: ${{ inputs.discussion-url }}
104
+ INPUT_MESSAGE: ${{ inputs.message }}
100
105
  with:
101
106
  script: |
102
107
  const fs = require('fs');
@@ -123,10 +128,10 @@ jobs:
123
128
  core.setOutput(name, value);
124
129
  return value;
125
130
  };
126
- resolve('model', '${{ inputs.model }}', 'model', 'gpt-5-mini');
127
- resolve('dry-run', '${{ inputs.dry-run }}', null, 'true');
128
- resolve('discussion-url', '${{ inputs.discussion-url }}', null, '');
129
- resolve('message', '${{ inputs.message }}', null, '');
131
+ resolve('model', process.env.INPUT_MODEL, 'model', 'gpt-5-mini');
132
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, 'true');
133
+ resolve('discussion-url', process.env.INPUT_DISCUSSION_URL, null, '');
134
+ resolve('message', process.env.INPUT_MESSAGE, null, '');
130
135
 
131
136
  respond:
132
137
  needs: params
@@ -195,6 +195,21 @@ jobs:
195
195
  sparse-checkout-cone-mode: false
196
196
  - id: resolve
197
197
  uses: actions/github-script@v8
198
+ env:
199
+ INPUT_MODE: ${{ inputs.mode }}
200
+ INPUT_MISSION_SEED: ${{ inputs.mission-seed }}
201
+ INPUT_MISSION_TEXT: ${{ inputs.mission-text }}
202
+ INPUT_MODEL: ${{ inputs.model }}
203
+ INPUT_PROFILE: ${{ inputs.profile }}
204
+ INPUT_WORKFLOW_RUNS: ${{ inputs.workflow-runs }}
205
+ INPUT_SCHEDULE: ${{ inputs.schedule }}
206
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
207
+ INPUT_MESSAGE: ${{ inputs.message }}
208
+ INPUT_CONFIG_PATH: ${{ inputs.config-path }}
209
+ INPUT_SKIP_MAINTAIN: ${{ inputs.skipMaintain }}
210
+ INPUT_CREATE_SEED_ISSUES: ${{ inputs.create-seed-issues }}
211
+ INPUT_SKIP_TESTS: ${{ inputs.skip-tests }}
212
+ INPUT_GENERATE_REPORT: ${{ inputs.generate-report }}
198
213
  with:
199
214
  script: |
200
215
  const fs = require('fs');
@@ -221,20 +236,20 @@ jobs:
221
236
  core.setOutput(name, value);
222
237
  return value;
223
238
  };
224
- resolve('mode', '${{ inputs.mode }}', null, 'purge');
225
- resolve('mission-seed', '${{ inputs.mission-seed }}', null, '7-kyu-understand-fizz-buzz');
226
- resolve('mission-text', '${{ inputs.mission-text }}', null, '');
227
- resolve('model', '${{ inputs.model }}', 'model', 'gpt-5-mini');
228
- resolve('profile', '${{ inputs.profile }}', 'profile', 'max');
229
- resolve('workflow-runs', '${{ inputs.workflow-runs }}', null, '4');
230
- resolve('schedule', '${{ inputs.schedule }}', null, 'off');
231
- resolve('dry-run', '${{ inputs.dry-run }}', null, 'false');
232
- resolve('message', '${{ inputs.message }}', null, '');
233
- resolve('config-path', '${{ inputs.config-path }}', null, 'agentic-lib.toml');
234
- resolve('skipMaintain', '${{ inputs.skipMaintain }}', null, 'false');
235
- resolve('create-seed-issues', '${{ inputs.create-seed-issues }}', null, 'false');
236
- resolve('skip-tests', '${{ inputs.skip-tests }}', null, 'true');
237
- resolve('generate-report', '${{ inputs.generate-report }}', null, 'false');
239
+ resolve('mode', process.env.INPUT_MODE, null, 'purge');
240
+ resolve('mission-seed', process.env.INPUT_MISSION_SEED, null, '7-kyu-understand-fizz-buzz');
241
+ resolve('mission-text', process.env.INPUT_MISSION_TEXT, null, '');
242
+ resolve('model', process.env.INPUT_MODEL, 'model', 'gpt-5-mini');
243
+ resolve('profile', process.env.INPUT_PROFILE, 'profile', 'max');
244
+ resolve('workflow-runs', process.env.INPUT_WORKFLOW_RUNS, null, '4');
245
+ resolve('schedule', process.env.INPUT_SCHEDULE, null, 'off');
246
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, 'false');
247
+ resolve('message', process.env.INPUT_MESSAGE, null, '');
248
+ resolve('config-path', process.env.INPUT_CONFIG_PATH, null, 'agentic-lib.toml');
249
+ resolve('skipMaintain', process.env.INPUT_SKIP_MAINTAIN, null, 'false');
250
+ resolve('create-seed-issues', process.env.INPUT_CREATE_SEED_ISSUES, null, 'false');
251
+ resolve('skip-tests', process.env.INPUT_SKIP_TESTS, null, 'true');
252
+ resolve('generate-report', process.env.INPUT_GENERATE_REPORT, null, 'false');
238
253
 
239
254
  # ── Phase 0: Update agentic-lib package ────────────────────────────
240
255
  update:
@@ -161,6 +161,16 @@ jobs:
161
161
  steps:
162
162
  - id: resolve
163
163
  uses: actions/github-script@v8
164
+ env:
165
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
166
+ INPUT_MODE: ${{ inputs.mode }}
167
+ INPUT_MISSION_SEED: ${{ inputs.mission-seed }}
168
+ INPUT_MISSION_TEXT: ${{ inputs.mission-text }}
169
+ INPUT_SCHEDULE: ${{ inputs.schedule }}
170
+ INPUT_MODEL: ${{ inputs.model }}
171
+ INPUT_PROFILE: ${{ inputs.profile }}
172
+ INPUT_CREATE_SEED_ISSUES: ${{ inputs.create-seed-issues }}
173
+ INPUT_RUN_WORKFLOW: ${{ inputs.run-workflow }}
164
174
  with:
165
175
  script: |
166
176
  const resolve = (name, input, configKey, defaultValue) => {
@@ -177,15 +187,15 @@ jobs:
177
187
  core.setOutput(name, value);
178
188
  return value;
179
189
  };
180
- resolve('dry-run', '${{ inputs.dry-run }}', null, 'false');
181
- resolve('mode', '${{ inputs.mode }}', null, 'purge');
182
- resolve('mission-seed', '${{ inputs.mission-seed }}', null, '7-kyu-understand-fizz-buzz');
183
- resolve('mission-text', '${{ inputs.mission-text }}', null, '');
184
- resolve('schedule', '${{ inputs.schedule }}', null, '');
185
- resolve('model', '${{ inputs.model }}', null, '');
186
- resolve('profile', '${{ inputs.profile }}', null, '');
187
- resolve('create-seed-issues', '${{ inputs.create-seed-issues }}', null, 'false');
188
- resolve('run-workflow', '${{ inputs.run-workflow }}', null, 'true');
190
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, 'false');
191
+ resolve('mode', process.env.INPUT_MODE, null, 'purge');
192
+ resolve('mission-seed', process.env.INPUT_MISSION_SEED, null, '7-kyu-understand-fizz-buzz');
193
+ resolve('mission-text', process.env.INPUT_MISSION_TEXT, null, '');
194
+ resolve('schedule', process.env.INPUT_SCHEDULE, null, '');
195
+ resolve('model', process.env.INPUT_MODEL, null, '');
196
+ resolve('profile', process.env.INPUT_PROFILE, null, '');
197
+ resolve('create-seed-issues', process.env.INPUT_CREATE_SEED_ISSUES, null, 'false');
198
+ resolve('run-workflow', process.env.INPUT_RUN_WORKFLOW, null, 'true');
189
199
 
190
200
  # Step 1: Update agentic-lib and infrastructure (commits to main)
191
201
  # Skip tests when purge/reseed will replace all user code anyway
@@ -88,10 +88,17 @@ jobs:
88
88
  sparse-checkout-cone-mode: false
89
89
  - id: resolve
90
90
  uses: actions/github-script@v8
91
+ env:
92
+ INPUT_PERIOD_START: ${{ inputs.period-start }}
93
+ INPUT_PERIOD_END: ${{ inputs.period-end }}
94
+ INPUT_MODEL: ${{ inputs.model }}
95
+ INPUT_CONFIG_PATH: ${{ inputs.config-path }}
96
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
97
+ CONFIG_PATH: ${{ env.configPath }}
91
98
  with:
92
99
  script: |
93
100
  const fs = require('fs');
94
- const configPath = '${{ env.configPath }}';
101
+ const configPath = process.env.CONFIG_PATH;
95
102
  let toml = '';
96
103
  if (fs.existsSync(configPath)) toml = fs.readFileSync(configPath, 'utf8');
97
104
  const readToml = (key) => {
@@ -114,11 +121,11 @@ jobs:
114
121
  core.setOutput(name, value);
115
122
  return value;
116
123
  };
117
- resolve('period-start', '${{ inputs.period-start }}', null, '');
118
- resolve('period-end', '${{ inputs.period-end }}', null, '');
119
- resolve('model', '${{ inputs.model }}', 'model', 'gpt-5-mini');
120
- resolve('config-path', '${{ inputs.config-path }}', null, '${{ env.configPath }}');
121
- resolve('dry-run', '${{ inputs.dry-run }}', null, 'false');
124
+ resolve('period-start', process.env.INPUT_PERIOD_START, null, '');
125
+ resolve('period-end', process.env.INPUT_PERIOD_END, null, '');
126
+ resolve('model', process.env.INPUT_MODEL, 'model', 'gpt-5-mini');
127
+ resolve('config-path', process.env.INPUT_CONFIG_PATH, null, process.env.CONFIG_PATH);
128
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, 'false');
122
129
 
123
130
  generate-report:
124
131
  needs: [params]
@@ -107,6 +107,12 @@ jobs:
107
107
  sparse-checkout-cone-mode: false
108
108
  - id: resolve
109
109
  uses: actions/github-script@v8
110
+ env:
111
+ INPUT_FREQUENCY: ${{ inputs.frequency }}
112
+ INPUT_MODEL: ${{ inputs.model }}
113
+ INPUT_PROFILE: ${{ inputs.profile }}
114
+ INPUT_FOCUS: ${{ inputs.focus }}
115
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
110
116
  with:
111
117
  script: |
112
118
  const fs = require('fs');
@@ -133,16 +139,16 @@ jobs:
133
139
  core.setOutput(name, value);
134
140
  return value;
135
141
  };
136
- const frequency = resolve('frequency', '${{ inputs.frequency }}', 'supervisor', 'off');
137
- resolve('model', '${{ inputs.model }}', 'model', 'gpt-5-mini');
138
- resolve('profile', '${{ inputs.profile }}', 'profile', '');
139
- let focus = resolve('focus', '${{ inputs.focus }}', 'focus', 'mission');
142
+ const frequency = resolve('frequency', process.env.INPUT_FREQUENCY, 'supervisor', 'off');
143
+ resolve('model', process.env.INPUT_MODEL, 'model', 'gpt-5-mini');
144
+ resolve('profile', process.env.INPUT_PROFILE, 'profile', '');
145
+ let focus = resolve('focus', process.env.INPUT_FOCUS, 'focus', 'mission');
140
146
  if (frequency === 'maintenance') {
141
147
  focus = 'maintenance';
142
148
  core.info(`param focus: overridden to 'maintenance' (frequency=maintenance)`);
143
149
  core.setOutput('focus', focus);
144
150
  }
145
- resolve('dry-run', '${{ inputs.dry-run }}', null, 'false');
151
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, 'false');
146
152
  const maintenance = frequency === 'maintenance' ? 'true' : 'false';
147
153
  core.info(`param maintenance: derived='${maintenance}' (frequency='${frequency}')`);
148
154
  core.setOutput('maintenance', maintenance);
@@ -70,6 +70,9 @@ jobs:
70
70
  steps:
71
71
  - id: resolve
72
72
  uses: actions/github-script@v8
73
+ env:
74
+ INPUT_PUSH_SCREENSHOT: ${{ inputs.push-screenshot }}
75
+ INPUT_LOG_BRANCH: ${{ inputs.log-branch }}
73
76
  with:
74
77
  script: |
75
78
  const resolve = (name, input, configKey, defaultValue) => {
@@ -86,8 +89,8 @@ jobs:
86
89
  core.setOutput(name, value);
87
90
  return value;
88
91
  };
89
- resolve('push-screenshot', '${{ inputs.push-screenshot }}', null, 'false');
90
- resolve('log-branch', '${{ inputs.log-branch }}', null, 'agentic-lib-logs');
92
+ resolve('push-screenshot', process.env.INPUT_PUSH_SCREENSHOT, null, 'false');
93
+ resolve('log-branch', process.env.INPUT_LOG_BRANCH, null, 'agentic-lib-logs');
91
94
 
92
95
  test:
93
96
  needs: [params]
@@ -45,6 +45,9 @@ jobs:
45
45
  steps:
46
46
  - id: resolve
47
47
  uses: actions/github-script@v8
48
+ env:
49
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
50
+ INPUT_SKIP_TESTS: ${{ inputs.skip-tests }}
48
51
  with:
49
52
  script: |
50
53
  const resolve = (name, input, configKey, defaultValue) => {
@@ -61,8 +64,8 @@ jobs:
61
64
  core.setOutput(name, value);
62
65
  return value;
63
66
  };
64
- resolve('dry-run', '${{ inputs.dry-run }}', null, 'false');
65
- resolve('skip-tests', '${{ inputs.skip-tests }}', null, 'false');
67
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, 'false');
68
+ resolve('skip-tests', process.env.INPUT_SKIP_TESTS, null, 'false');
66
69
 
67
70
  update:
68
71
  needs: [params]
@@ -166,10 +166,23 @@ jobs:
166
166
  sparse-checkout-cone-mode: false
167
167
  - id: resolve
168
168
  uses: actions/github-script@v8
169
+ env:
170
+ INPUT_MODEL: ${{ inputs.model }}
171
+ INPUT_PROFILE: ${{ inputs.profile }}
172
+ INPUT_MODE: ${{ inputs.mode }}
173
+ INPUT_MESSAGE: ${{ inputs.message }}
174
+ INPUT_ISSUE_NUMBER: ${{ inputs.issue-number }}
175
+ INPUT_SCHEDULE: ${{ inputs.schedule }}
176
+ INPUT_PR_NUMBER: ${{ inputs.pr-number }}
177
+ INPUT_CONFIG_PATH: ${{ inputs.config-path }}
178
+ INPUT_SKIP_MAINTAIN: ${{ inputs.skipMaintain }}
179
+ INPUT_DRY_RUN: ${{ inputs.dry-run }}
180
+ CONFIG_PATH: ${{ env.configPath }}
181
+ EVENT_NAME: ${{ github.event_name }}
169
182
  with:
170
183
  script: |
171
184
  const fs = require('fs');
172
- const configPath = '${{ env.configPath }}';
185
+ const configPath = process.env.CONFIG_PATH;
173
186
  let toml = '';
174
187
  if (fs.existsSync(configPath)) toml = fs.readFileSync(configPath, 'utf8');
175
188
  const readToml = (key) => {
@@ -192,19 +205,19 @@ jobs:
192
205
  core.setOutput(name, value);
193
206
  return value;
194
207
  };
195
- resolve('model', '${{ inputs.model }}', 'model', 'gpt-5-mini');
196
- resolve('profile', '${{ inputs.profile }}', 'profile', '');
197
- resolve('mode', '${{ inputs.mode }}', null, 'full');
198
- resolve('message', '${{ inputs.message }}', null, '');
199
- resolve('issue-number', '${{ inputs.issue-number }}', null, '');
200
- resolve('schedule', '${{ inputs.schedule }}', null, '');
201
- resolve('pr-number', '${{ inputs.pr-number }}', null, '');
202
- resolve('config-path', '${{ inputs.config-path }}', null, '${{ env.configPath }}');
203
- resolve('skipMaintain', '${{ inputs.skipMaintain }}', null, 'false');
208
+ resolve('model', process.env.INPUT_MODEL, 'model', 'gpt-5-mini');
209
+ resolve('profile', process.env.INPUT_PROFILE, 'profile', '');
210
+ resolve('mode', process.env.INPUT_MODE, null, 'full');
211
+ resolve('message', process.env.INPUT_MESSAGE, null, '');
212
+ resolve('issue-number', process.env.INPUT_ISSUE_NUMBER, null, '');
213
+ resolve('schedule', process.env.INPUT_SCHEDULE, null, '');
214
+ resolve('pr-number', process.env.INPUT_PR_NUMBER, null, '');
215
+ resolve('config-path', process.env.INPUT_CONFIG_PATH, null, process.env.CONFIG_PATH);
216
+ resolve('skipMaintain', process.env.INPUT_SKIP_MAINTAIN, null, 'false');
204
217
  // dry-run: schedule events default to false (live), others to true
205
- const eventName = '${{ github.event_name }}';
218
+ const eventName = process.env.EVENT_NAME;
206
219
  const dryRunDefault = eventName === 'schedule' ? 'false' : 'true';
207
- resolve('dry-run', '${{ inputs.dry-run }}', null, dryRunDefault);
220
+ resolve('dry-run', process.env.INPUT_DRY_RUN, null, dryRunDefault);
208
221
  // Bot config from TOML
209
222
  resolve('log-prefix', '', 'log-prefix', 'agent-log-');
210
223
  resolve('log-branch', '', 'log-branch', 'agentic-lib-logs');
package/agentic-lib.toml CHANGED
@@ -70,7 +70,6 @@ infinite-sessions = false # set to true for long sessions with compaction
70
70
  # [tuning] or [limits] to deviate from the active profile.
71
71
 
72
72
  [profiles.min]
73
- # Fast, cheap — CI testing, quick validation.
74
73
  reasoning-effort = "low" # low | medium | high | none
75
74
  infinite-sessions = false # enable session compaction for long runs
76
75
  transformation-budget = 16 # max code-changing cycles per run
@@ -93,12 +92,11 @@ max-fix-test-output = 8000 # max chars of failed run log in fix-code
93
92
  review-issues-cap = 2 # max issues reviewed per batch (conservative for 10 min timeout)
94
93
  min-resolved-issues = 1 # mission-complete: minimum closed-as-RESOLVED issues
95
94
  min-cumulative-transforms = 1 # mission-complete: minimum transform cycles
96
- max-source-todos = 2 # mission-complete: max TODO comments in src
97
- acceptance-criteria-threshold = 30 # mission-complete: % acceptance criteria required
95
+ max-source-todos = 1 # mission-complete: max TODO comments in src
96
+ acceptance-criteria-threshold = 80 # mission-complete: % acceptance criteria required
98
97
 
99
98
  [profiles.med]
100
- # Balanced good results, middle ground.
101
- reasoning-effort = "medium" # low | medium | high | none
99
+ reasoning-effort = "high" # low | medium | high | none
102
100
  infinite-sessions = true # enable session compaction for long runs
103
101
  transformation-budget = 32 # max code-changing cycles per run
104
102
  max-issues = 15 # max open issues fetched from GitHub
@@ -118,13 +116,12 @@ max-file-listing = 100 # max files in directory listings (0 = un
118
116
  max-library-index = 5000 # max chars for library index in prompts
119
117
  max-fix-test-output = 15000 # max chars of failed run log in fix-code
120
118
  review-issues-cap = 3 # max issues reviewed per batch
121
- min-resolved-issues = 2 # mission-complete: minimum closed-as-RESOLVED issues
119
+ min-resolved-issues = 1 # mission-complete: minimum closed-as-RESOLVED issues
122
120
  min-cumulative-transforms = 1 # mission-complete: minimum transform cycles
123
121
  max-source-todos = 1 # mission-complete: max TODO comments in src
124
- acceptance-criteria-threshold = 50 # mission-complete: % acceptance criteria required
122
+ acceptance-criteria-threshold = 80 # mission-complete: % acceptance criteria required
125
123
 
126
124
  [profiles.max]
127
- # Thorough — maximum context for complex missions.
128
125
  reasoning-effort = "high" # low | medium | high | none
129
126
  infinite-sessions = true # enable session compaction for long runs
130
127
  transformation-budget = 128 # max code-changing cycles per run
@@ -145,10 +142,10 @@ max-file-listing = 0 # max files in directory listings (0 = un
145
142
  max-library-index = 10000 # max chars for library index in prompts
146
143
  max-fix-test-output = 30000 # max chars of failed run log in fix-code
147
144
  review-issues-cap = 4 # max issues reviewed per batch (may need step timeout awareness)
148
- min-resolved-issues = 3 # mission-complete: minimum closed-as-RESOLVED issues
149
- min-cumulative-transforms = 2 # mission-complete: minimum transform cycles
145
+ min-resolved-issues = 1 # mission-complete: minimum closed-as-RESOLVED issues
146
+ min-cumulative-transforms = 1 # mission-complete: minimum transform cycles
150
147
  max-source-todos = 0 # mission-complete: max TODO comments in src
151
- acceptance-criteria-threshold = 75 # mission-complete: % acceptance criteria required
148
+ acceptance-criteria-threshold = 80 # mission-complete: % acceptance criteria required
152
149
 
153
150
  [goals]
154
151
  # W12/W13: Code coverage thresholds — stated in all code-changing prompts
@@ -160,7 +157,7 @@ min-branch-coverage = 30 # minimum % branch coverage required
160
157
  # All conditions must be met simultaneously.
161
158
  min-resolved-issues = 1 # minimum closed-as-RESOLVED issues since init
162
159
  max-source-todos = 0 # max TODO comments allowed in ./src (0 = none)
163
- acceptance-criteria-threshold = 50 # percentage of acceptance criteria that must be met (0-100)
160
+ acceptance-criteria-threshold = 80 # percentage of acceptance criteria that must be met (0-100)
164
161
  min-cumulative-transforms = 1 # minimum transform cycles completed
165
162
  require-no-open-issues = true # all issues must be closed
166
163
  require-no-open-prs = true # all PRs must be merged/closed
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xn-intenton-z2a/agentic-lib",
3
- "version": "7.4.45",
3
+ "version": "7.4.47",
4
4
  "description": "Agentic-lib Agentic Coding Systems SDK powering automated GitHub workflows.",
5
5
  "type": "module",
6
6
  "scripts": {
@@ -17,7 +17,7 @@
17
17
  "author": "",
18
18
  "license": "MIT",
19
19
  "dependencies": {
20
- "@xn-intenton-z2a/agentic-lib": "^7.4.45"
20
+ "@xn-intenton-z2a/agentic-lib": "^7.4.47"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@playwright/test": "^1.58.0",