@ryuenn3123/agentic-senior-core 4.2.3 → 4.2.4
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/README.md +1 -0
- package/lib/cli/backup.mjs +16 -0
- package/lib/cli/commands/init.mjs +21 -0
- package/lib/cli/compiler.mjs +2 -0
- package/lib/cli/init-options.mjs +11 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -26,6 +26,7 @@ Options:
|
|
|
26
26
|
- Add `--mcp-template` to generate VS Code MCP workspace config.
|
|
27
27
|
- Default init keeps MCP files opt-in.
|
|
28
28
|
- Add `--no-token-optimize` only when you do not want ASCX command guidance enabled.
|
|
29
|
+
- Add `--local-only` to ignore instructions (AGENTS.md, .agent-context/, and bridges) in .gitignore so they are not pushed to GitHub.
|
|
29
30
|
- Local backup snapshots are written under `.agentic-backup/` and excluded from version control.
|
|
30
31
|
|
|
31
32
|
## Upgrade
|
package/lib/cli/backup.mjs
CHANGED
|
@@ -12,6 +12,15 @@ const RUNTIME_ARTIFACT_GITIGNORE_ENTRIES = [
|
|
|
12
12
|
];
|
|
13
13
|
const RUNTIME_ARTIFACT_GITIGNORE_COMMENT = '# agentic-senior-core: local runtime artifacts';
|
|
14
14
|
|
|
15
|
+
const GOVERNANCE_GITIGNORE_ENTRIES = [
|
|
16
|
+
'.agent-context/',
|
|
17
|
+
'AGENTS.md',
|
|
18
|
+
'CLAUDE.md',
|
|
19
|
+
'GEMINI.md',
|
|
20
|
+
'mcp.json',
|
|
21
|
+
];
|
|
22
|
+
const GOVERNANCE_GITIGNORE_COMMENT = '# agentic-senior-core: local-only governance files';
|
|
23
|
+
|
|
15
24
|
/**
|
|
16
25
|
* Calculates a SHA-256 hash of a file's contents.
|
|
17
26
|
*/
|
|
@@ -192,3 +201,10 @@ export async function ensureRuntimeArtifactGitignoreEntries(targetDirectoryPath)
|
|
|
192
201
|
entries: RUNTIME_ARTIFACT_GITIGNORE_ENTRIES,
|
|
193
202
|
});
|
|
194
203
|
}
|
|
204
|
+
|
|
205
|
+
export async function ensureLocalGovernanceGitignoreEntries(targetDirectoryPath) {
|
|
206
|
+
return ensureGitignoreEntries(targetDirectoryPath, {
|
|
207
|
+
comment: GOVERNANCE_GITIGNORE_COMMENT,
|
|
208
|
+
entries: GOVERNANCE_GITIGNORE_ENTRIES,
|
|
209
|
+
});
|
|
210
|
+
}
|
|
@@ -49,6 +49,7 @@ import {
|
|
|
49
49
|
createBackup,
|
|
50
50
|
ensureBackupGitignoreEntry,
|
|
51
51
|
ensureRuntimeArtifactGitignoreEntries,
|
|
52
|
+
ensureLocalGovernanceGitignoreEntries,
|
|
52
53
|
} from '../backup.mjs';
|
|
53
54
|
import {
|
|
54
55
|
runProjectDiscovery,
|
|
@@ -384,6 +385,25 @@ export async function runInitCommand(targetDirectoryArgument, initOptions = {})
|
|
|
384
385
|
);
|
|
385
386
|
}
|
|
386
387
|
|
|
388
|
+
const shouldKeepLocalOnly = typeof initOptions.localOnly === 'boolean'
|
|
389
|
+
? initOptions.localOnly
|
|
390
|
+
: isInteractiveSession
|
|
391
|
+
? await askYesNo(
|
|
392
|
+
'Add AI instructions and governance files to .gitignore? (Prevents pushing them to GitHub/Git)',
|
|
393
|
+
userInterface,
|
|
394
|
+
false
|
|
395
|
+
)
|
|
396
|
+
: false;
|
|
397
|
+
|
|
398
|
+
if (shouldKeepLocalOnly) {
|
|
399
|
+
const localGovernanceGitignoreResult = await ensureLocalGovernanceGitignoreEntries(resolvedTargetDirectoryPath);
|
|
400
|
+
if (localGovernanceGitignoreResult.status !== 'unchanged') {
|
|
401
|
+
console.log(
|
|
402
|
+
`AI governance files ignored in .gitignore (${localGovernanceGitignoreResult.addedEntries.join(', ')}).`
|
|
403
|
+
);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
387
407
|
await copyGovernanceAssetsToTarget(resolvedTargetDirectoryPath, {
|
|
388
408
|
includeMcpTemplate: shouldIncludeMcpTemplate,
|
|
389
409
|
});
|
|
@@ -523,6 +543,7 @@ export async function runInitCommand(targetDirectoryArgument, initOptions = {})
|
|
|
523
543
|
selectedBlueprintFileName: selectedResolvedBlueprintFileName,
|
|
524
544
|
selectedAdditionalBlueprintFileNames,
|
|
525
545
|
includeCiGuardrails,
|
|
546
|
+
localOnly: shouldKeepLocalOnly,
|
|
526
547
|
setupDurationMs,
|
|
527
548
|
projectDetection,
|
|
528
549
|
runtimeEnvironment: {
|
package/lib/cli/compiler.mjs
CHANGED
|
@@ -145,6 +145,7 @@ export async function writeOnboardingReport({
|
|
|
145
145
|
selectedBlueprintFileName,
|
|
146
146
|
selectedAdditionalBlueprintFileNames = [],
|
|
147
147
|
includeCiGuardrails,
|
|
148
|
+
localOnly = false,
|
|
148
149
|
setupDurationMs,
|
|
149
150
|
projectDetection,
|
|
150
151
|
runtimeEnvironment = null,
|
|
@@ -197,6 +198,7 @@ export async function writeOnboardingReport({
|
|
|
197
198
|
agentDecisionRequired: !hasExplicitRuntimeDecision,
|
|
198
199
|
},
|
|
199
200
|
ciGuardrailsEnabled: includeCiGuardrails,
|
|
201
|
+
localOnly,
|
|
200
202
|
setupDurationMs,
|
|
201
203
|
runtimeEnvironment,
|
|
202
204
|
containerizationStrategy: buildContainerizationStrategySnapshot(dockerStrategy),
|
package/lib/cli/init-options.mjs
CHANGED
|
@@ -24,6 +24,7 @@ export function parseInitArguments(commandArguments) {
|
|
|
24
24
|
memoryContinuity: true,
|
|
25
25
|
tokenAgent: 'copilot',
|
|
26
26
|
includeMcpTemplate: false,
|
|
27
|
+
localOnly: undefined,
|
|
27
28
|
scaffoldDocs: undefined,
|
|
28
29
|
docsLang: 'en',
|
|
29
30
|
docsLangProvided: false,
|
|
@@ -143,6 +144,16 @@ export function parseInitArguments(commandArguments) {
|
|
|
143
144
|
continue;
|
|
144
145
|
}
|
|
145
146
|
|
|
147
|
+
if (currentArgument === '--local-only') {
|
|
148
|
+
parsedInitOptions.localOnly = true;
|
|
149
|
+
continue;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
if (currentArgument === '--no-local-only') {
|
|
153
|
+
parsedInitOptions.localOnly = false;
|
|
154
|
+
continue;
|
|
155
|
+
}
|
|
156
|
+
|
|
146
157
|
if (currentArgument === '--scaffold-docs') {
|
|
147
158
|
parsedInitOptions.scaffoldDocs = true;
|
|
148
159
|
continue;
|