@xn-intenton-z2a/agentic-lib 7.1.98 → 7.1.100
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/agentic-lib.toml
CHANGED
|
@@ -68,19 +68,19 @@ infinite-sessions = false # set to true for long sessions with compaction
|
|
|
68
68
|
# [tuning] or [limits] to deviate from the active profile.
|
|
69
69
|
|
|
70
70
|
[profiles.min]
|
|
71
|
-
# Fast
|
|
71
|
+
# ~10% of gpt-4.1 context (128K). Fast, cheap — CI testing, quick validation.
|
|
72
72
|
reasoning-effort = "low" # low | medium | high | none
|
|
73
73
|
infinite-sessions = false # enable session compaction for long runs
|
|
74
74
|
transformation-budget = 16 # max code-changing cycles per run
|
|
75
75
|
max-feature-files = 3 # max feature files included in prompts
|
|
76
76
|
max-source-files = 3 # max source files included in prompts
|
|
77
|
-
max-source-chars =
|
|
78
|
-
max-test-chars =
|
|
77
|
+
max-source-chars = 4000 # max chars of each source file's content included in prompts
|
|
78
|
+
max-test-chars = 2000 # max chars of each test file's content included in prompts
|
|
79
79
|
max-issues = 5 # max open issues included in prompts
|
|
80
|
-
issue-body-limit =
|
|
80
|
+
issue-body-limit = 1000 # max chars of each issue's body text included in prompts
|
|
81
81
|
stale-days = 14 # days since last activity before an issue is considered stale and excluded
|
|
82
|
-
max-summary-chars =
|
|
83
|
-
max-discussion-comments =
|
|
82
|
+
max-summary-chars = 2000 # max chars of each document's summary included in prompts
|
|
83
|
+
max-discussion-comments = 3 # max recent discussion comments (newest first) included in prompts
|
|
84
84
|
max-feature-issues = 1 # max concurrent feature development issues
|
|
85
85
|
max-maintenance-issues = 1 # max concurrent maintenance issues
|
|
86
86
|
max-attempts-per-branch = 2 # max transform attempts before abandoning a branch
|
|
@@ -89,18 +89,18 @@ features-limit = 2 # max feature files in features/ director
|
|
|
89
89
|
library-limit = 8 # max library entries in library/ directory
|
|
90
90
|
|
|
91
91
|
[profiles.recommended]
|
|
92
|
-
# Balanced — good results
|
|
92
|
+
# ~30% of claude-sonnet-4 context (216K). Balanced — good results, default for consumer repos.
|
|
93
93
|
reasoning-effort = "medium" # low | medium | high | none
|
|
94
94
|
infinite-sessions = true # enable session compaction for long runs
|
|
95
95
|
transformation-budget = 32 # max code-changing cycles per run
|
|
96
96
|
max-feature-files = 10 # max feature files included in prompts
|
|
97
97
|
max-source-files = 10 # max source files included in prompts
|
|
98
|
-
max-source-chars =
|
|
99
|
-
max-test-chars =
|
|
100
|
-
max-issues =
|
|
101
|
-
issue-body-limit =
|
|
98
|
+
max-source-chars = 8000 # max chars of each source file's content included in prompts
|
|
99
|
+
max-test-chars = 5000 # max chars of each test file's content included in prompts
|
|
100
|
+
max-issues = 15 # max open issues included in prompts
|
|
101
|
+
issue-body-limit = 2000 # max chars of each issue's body text included in prompts
|
|
102
102
|
stale-days = 30 # days since last activity before an issue is considered stale and excluded
|
|
103
|
-
max-summary-chars =
|
|
103
|
+
max-summary-chars = 5000 # max chars of each document's summary included in prompts
|
|
104
104
|
max-discussion-comments = 10 # max recent discussion comments (newest first) included in prompts
|
|
105
105
|
max-feature-issues = 2 # max concurrent feature development issues
|
|
106
106
|
max-maintenance-issues = 1 # max concurrent maintenance issues
|
|
@@ -110,19 +110,19 @@ features-limit = 4 # max feature files in features/ director
|
|
|
110
110
|
library-limit = 32 # max library entries in library/ directory
|
|
111
111
|
|
|
112
112
|
[profiles.max]
|
|
113
|
-
# Thorough — maximum context
|
|
113
|
+
# ~90% of gpt-5-mini context (264K). Thorough — maximum context for complex missions.
|
|
114
114
|
reasoning-effort = "high" # low | medium | high | none
|
|
115
115
|
infinite-sessions = true # enable session compaction for long runs
|
|
116
116
|
transformation-budget = 128 # max code-changing cycles per run
|
|
117
|
-
max-feature-files =
|
|
118
|
-
max-source-files =
|
|
119
|
-
max-source-chars =
|
|
120
|
-
max-test-chars =
|
|
121
|
-
max-issues =
|
|
122
|
-
issue-body-limit =
|
|
117
|
+
max-feature-files = 20 # max feature files included in prompts
|
|
118
|
+
max-source-files = 25 # max source files included in prompts
|
|
119
|
+
max-source-chars = 12000 # max chars of each source file's content included in prompts
|
|
120
|
+
max-test-chars = 8000 # max chars of each test file's content included in prompts
|
|
121
|
+
max-issues = 30 # max open issues included in prompts
|
|
122
|
+
issue-body-limit = 3000 # max chars of each issue's body text included in prompts
|
|
123
123
|
stale-days = 90 # days since last activity before an issue is considered stale and excluded
|
|
124
|
-
max-summary-chars =
|
|
125
|
-
max-discussion-comments =
|
|
124
|
+
max-summary-chars = 8000 # max chars of each document's summary included in prompts
|
|
125
|
+
max-discussion-comments = 20 # max recent discussion comments (newest first) included in prompts
|
|
126
126
|
max-feature-issues = 4 # max concurrent feature development issues
|
|
127
127
|
max-maintenance-issues = 2 # max concurrent maintenance issues
|
|
128
128
|
max-attempts-per-branch = 5 # max transform attempts before abandoning a branch
|
package/package.json
CHANGED
|
@@ -277,7 +277,7 @@ export async function runCopilotTask({
|
|
|
277
277
|
profileName,
|
|
278
278
|
maxRetries = 3,
|
|
279
279
|
}) {
|
|
280
|
-
const profile = profileName || "unknown";
|
|
280
|
+
const profile = profileName || tuning?.profileName || "unknown";
|
|
281
281
|
|
|
282
282
|
// Attempt 0 is the initial call; attempts 1..maxRetries are retries after 429s.
|
|
283
283
|
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
@@ -308,7 +308,7 @@ async function _runCopilotTaskOnce({
|
|
|
308
308
|
tuning,
|
|
309
309
|
profileName,
|
|
310
310
|
}) {
|
|
311
|
-
const profile = profileName || "unknown";
|
|
311
|
+
const profile = profileName || tuning?.profileName || "unknown";
|
|
312
312
|
core.info(
|
|
313
313
|
`[copilot] Creating client (model=${model}, promptLen=${prompt.length}, writablePaths=${writablePaths.length}, tuning=${tuning?.reasoningEffort || "default"}, profile=${profile})`,
|
|
314
314
|
);
|
|
@@ -605,6 +605,31 @@ async function executeMissionComplete(octokit, repo, params, ctx) {
|
|
|
605
605
|
].join("\n");
|
|
606
606
|
writeFileSync("MISSION_COMPLETE.md", signal);
|
|
607
607
|
core.info(`Mission complete signal written: ${reason}`);
|
|
608
|
+
|
|
609
|
+
// Persist MISSION_COMPLETE.md to the repository via Contents API so it survives across runs
|
|
610
|
+
try {
|
|
611
|
+
const contentBase64 = Buffer.from(signal).toString("base64");
|
|
612
|
+
// Check if file already exists (to get its SHA for updates)
|
|
613
|
+
let existingSha;
|
|
614
|
+
try {
|
|
615
|
+
const { data } = await octokit.rest.repos.getContent({ ...repo, path: "MISSION_COMPLETE.md", ref: "main" });
|
|
616
|
+
existingSha = data.sha;
|
|
617
|
+
} catch {
|
|
618
|
+
// File doesn't exist yet — that's fine
|
|
619
|
+
}
|
|
620
|
+
await octokit.rest.repos.createOrUpdateFileContents({
|
|
621
|
+
...repo,
|
|
622
|
+
path: "MISSION_COMPLETE.md",
|
|
623
|
+
message: "mission-complete: " + reason.substring(0, 72),
|
|
624
|
+
content: contentBase64,
|
|
625
|
+
branch: "main",
|
|
626
|
+
...(existingSha ? { sha: existingSha } : {}),
|
|
627
|
+
});
|
|
628
|
+
core.info("MISSION_COMPLETE.md committed to main via Contents API");
|
|
629
|
+
} catch (err) {
|
|
630
|
+
core.warning(`Could not commit MISSION_COMPLETE.md to repo: ${err.message}`);
|
|
631
|
+
}
|
|
632
|
+
|
|
608
633
|
if (process.env.GITHUB_REPOSITORY !== "xn-intenton-z2a/agentic-lib") {
|
|
609
634
|
try {
|
|
610
635
|
await octokit.rest.actions.createWorkflowDispatch({
|
|
@@ -638,6 +663,30 @@ async function executeMissionFailed(octokit, repo, params, ctx) {
|
|
|
638
663
|
].join("\n");
|
|
639
664
|
writeFileSync("MISSION_FAILED.md", signal);
|
|
640
665
|
core.info(`Mission failed signal written: ${reason}`);
|
|
666
|
+
|
|
667
|
+
// Persist MISSION_FAILED.md to the repository via Contents API so it survives across runs
|
|
668
|
+
try {
|
|
669
|
+
const contentBase64 = Buffer.from(signal).toString("base64");
|
|
670
|
+
let existingSha;
|
|
671
|
+
try {
|
|
672
|
+
const { data } = await octokit.rest.repos.getContent({ ...repo, path: "MISSION_FAILED.md", ref: "main" });
|
|
673
|
+
existingSha = data.sha;
|
|
674
|
+
} catch {
|
|
675
|
+
// File doesn't exist yet — that's fine
|
|
676
|
+
}
|
|
677
|
+
await octokit.rest.repos.createOrUpdateFileContents({
|
|
678
|
+
...repo,
|
|
679
|
+
path: "MISSION_FAILED.md",
|
|
680
|
+
message: "mission-failed: " + reason.substring(0, 72),
|
|
681
|
+
content: contentBase64,
|
|
682
|
+
branch: "main",
|
|
683
|
+
...(existingSha ? { sha: existingSha } : {}),
|
|
684
|
+
});
|
|
685
|
+
core.info("MISSION_FAILED.md committed to main via Contents API");
|
|
686
|
+
} catch (err) {
|
|
687
|
+
core.warning(`Could not commit MISSION_FAILED.md to repo: ${err.message}`);
|
|
688
|
+
}
|
|
689
|
+
|
|
641
690
|
if (process.env.GITHUB_REPOSITORY !== "xn-intenton-z2a/agentic-lib") {
|
|
642
691
|
try {
|
|
643
692
|
await octokit.rest.actions.createWorkflowDispatch({
|
|
@@ -716,7 +765,7 @@ export async function supervise(context) {
|
|
|
716
765
|
if (ctx.initTimestamp && !ctx.missionComplete && !ctx.missionFailed) {
|
|
717
766
|
// Check for any prior agentic-lib-workflow runs since init (count > 1 because current run is included)
|
|
718
767
|
const supervisorRunCount = ctx.actionsSinceInit.filter(
|
|
719
|
-
(a) => a.name
|
|
768
|
+
(a) => a.name.startsWith("agentic-lib-workflow"),
|
|
720
769
|
).length;
|
|
721
770
|
const hasPriorSupervisor = supervisorRunCount > 1 || ctx.recentActivity.includes("supervised:");
|
|
722
771
|
if (!hasPriorSupervisor && ctx.mission && ctx.activeDiscussionUrl) {
|
|
@@ -17,11 +17,12 @@
|
|
|
17
17
|
"author": "",
|
|
18
18
|
"license": "MIT",
|
|
19
19
|
"dependencies": {
|
|
20
|
-
"@xn-intenton-z2a/agentic-lib": "^7.1.
|
|
20
|
+
"@xn-intenton-z2a/agentic-lib": "^7.1.100"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
23
|
"@playwright/test": "^1.58.0",
|
|
24
24
|
"@vitest/coverage-v8": "^4.0.18",
|
|
25
|
+
"jsdom": "^26.1.0",
|
|
25
26
|
"serve": "^14.2.4",
|
|
26
27
|
"vitest": "^4.0.18"
|
|
27
28
|
},
|