@pourkit/cli 0.0.0-next-20260617183635 → 0.0.0-next-20260617220545
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/cli.js +146 -107
- package/dist/cli.js.map +1 -1
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -11941,6 +11941,7 @@ import { createHash as createHash2, randomUUID } from "crypto";
|
|
|
11941
11941
|
import path5 from "path";
|
|
11942
11942
|
import { execFile as execFile2 } from "child_process";
|
|
11943
11943
|
import { promisify as promisify2 } from "util";
|
|
11944
|
+
import { fileURLToPath as fileURLToPath2 } from "url";
|
|
11944
11945
|
import { confirm, isCancel, log, select, text } from "@clack/prompts";
|
|
11945
11946
|
|
|
11946
11947
|
// providers/github-client.ts
|
|
@@ -12088,7 +12089,15 @@ function getWorkflowPackCatalog() {
|
|
|
12088
12089
|
function buildOpenCodeSkillProjectionContent(managedSourcePath, sourceContent) {
|
|
12089
12090
|
const generatedNotice = `Generated from ${managedSourcePath}. Do not edit directly.`;
|
|
12090
12091
|
if (managedSourcePath.endsWith(".md") || managedSourcePath.endsWith(".mdx")) {
|
|
12091
|
-
|
|
12092
|
+
const comment = `<!-- ${generatedNotice} -->`;
|
|
12093
|
+
const frontmatter = sourceContent.match(
|
|
12094
|
+
/^---\r?\n[\s\S]*?\r?\n---[ \t]*(?:\r?\n|$)/
|
|
12095
|
+
);
|
|
12096
|
+
if (frontmatter) {
|
|
12097
|
+
return `${frontmatter[0]}${comment}
|
|
12098
|
+
${sourceContent.slice(frontmatter[0].length)}`;
|
|
12099
|
+
}
|
|
12100
|
+
return `${comment}
|
|
12092
12101
|
${sourceContent}`;
|
|
12093
12102
|
}
|
|
12094
12103
|
if (managedSourcePath.endsWith(".sh") || managedSourcePath.endsWith(".bash") || managedSourcePath.endsWith(".zsh") || managedSourcePath.endsWith(".py") || managedSourcePath.endsWith(".rb") || managedSourcePath.endsWith(".yml") || managedSourcePath.endsWith(".yaml") || managedSourcePath.endsWith(".toml")) {
|
|
@@ -12124,7 +12133,22 @@ function buildWorkflowPackMetadata(enabledAddons) {
|
|
|
12124
12133
|
|
|
12125
12134
|
// commands/init.ts
|
|
12126
12135
|
var execFileAsync2 = promisify2(execFile2);
|
|
12136
|
+
var __filename2 = fileURLToPath2(import.meta.url);
|
|
12137
|
+
var __dirname2 = path5.dirname(__filename2);
|
|
12127
12138
|
var RELEASE_ADDON_SKILL_NAMES = ["changeset", "promote-release"];
|
|
12139
|
+
function resolvePackagedSourceRoot() {
|
|
12140
|
+
return path5.resolve(__dirname2, "..");
|
|
12141
|
+
}
|
|
12142
|
+
function resolveSourceAssetPath(sourceRoot, ...segments) {
|
|
12143
|
+
const candidatePaths = [
|
|
12144
|
+
path5.join(sourceRoot, ...segments),
|
|
12145
|
+
path5.join(sourceRoot, "dist", ...segments)
|
|
12146
|
+
];
|
|
12147
|
+
for (const candidatePath of candidatePaths) {
|
|
12148
|
+
if (existsSync18(candidatePath)) return candidatePath;
|
|
12149
|
+
}
|
|
12150
|
+
return path5.join(sourceRoot, "pourkit", ...segments);
|
|
12151
|
+
}
|
|
12128
12152
|
var BASELINE_SKILL_NAMES = [
|
|
12129
12153
|
"code-review",
|
|
12130
12154
|
"diagnose",
|
|
@@ -12505,14 +12529,31 @@ Use \`fd\` for file discovery, \`rg\` for text search, and direct file reads for
|
|
|
12505
12529
|
|
|
12506
12530
|
Follow the project's domain docs and conventions documented in \`.pourkit/managed/docs/agents/*\`.
|
|
12507
12531
|
|
|
12508
|
-
|
|
12532
|
+
## Pourkit Workflow Routes
|
|
12533
|
+
|
|
12534
|
+
### Issue Tracker
|
|
12535
|
+
|
|
12536
|
+
When using Pourkit issue workflows, see \`.pourkit/managed/docs/agents/issue-tracker.md\`.
|
|
12537
|
+
|
|
12538
|
+
### Triage Labels
|
|
12509
12539
|
|
|
12510
|
-
|
|
12511
|
-
|
|
12512
|
-
|
|
12513
|
-
|
|
12514
|
-
- \`.pourkit/managed/docs/agents/
|
|
12515
|
-
|
|
12540
|
+
Pourkit workflows use the default triage labels described in \`.pourkit/managed/docs/agents/triage-labels.md\`.
|
|
12541
|
+
|
|
12542
|
+
### Domain Docs
|
|
12543
|
+
|
|
12544
|
+
Follow the repository domain-documentation layout in \`.pourkit/managed/docs/agents/domain.md\`.
|
|
12545
|
+
|
|
12546
|
+
### Issue Naming
|
|
12547
|
+
|
|
12548
|
+
PRDs and child issues must follow the naming convention in \`.pourkit/managed/docs/agents/naming.md\`.
|
|
12549
|
+
|
|
12550
|
+
### Git Workflow
|
|
12551
|
+
|
|
12552
|
+
Branch naming and PR creation guidance lives in \`.pourkit/managed/docs/agents/git-workflow.md\`.
|
|
12553
|
+
|
|
12554
|
+
### Commit Style
|
|
12555
|
+
|
|
12556
|
+
Agents must write readable conventional commits with bullet-list bodies for non-trivial changes. See \`.pourkit/managed/docs/agents/commit-style.md\`.
|
|
12516
12557
|
|
|
12517
12558
|
### Project-owned context
|
|
12518
12559
|
|
|
@@ -12690,16 +12731,24 @@ async function checkExistingLabelConflicts(client, canonicalLabels) {
|
|
|
12690
12731
|
}
|
|
12691
12732
|
}
|
|
12692
12733
|
async function planInit(options) {
|
|
12693
|
-
const { targetRoot
|
|
12734
|
+
const { targetRoot } = options;
|
|
12735
|
+
let sourceRoot = options.sourceRoot ?? resolvePackagedSourceRoot();
|
|
12736
|
+
let usingExplicitSource = Boolean(options.sourceRoot);
|
|
12694
12737
|
const operations = [];
|
|
12695
12738
|
const warnings = [];
|
|
12696
12739
|
let hasLabelConflicts = false;
|
|
12697
|
-
|
|
12698
|
-
|
|
12699
|
-
|
|
12700
|
-
|
|
12740
|
+
if (options.sourceRoot) {
|
|
12741
|
+
warnings.push("--from-local is deprecated; omit it to use packaged assets");
|
|
12742
|
+
operations.push({
|
|
12743
|
+
kind: "warn",
|
|
12744
|
+
reason: "--from-local is deprecated; omit it to use packaged assets",
|
|
12745
|
+
destructive: false,
|
|
12746
|
+
requiresConfirmation: false
|
|
12701
12747
|
});
|
|
12702
12748
|
}
|
|
12749
|
+
const managedAgentContent = await generateManagedAgentInstructions({
|
|
12750
|
+
sourceRoot
|
|
12751
|
+
});
|
|
12703
12752
|
const pm = options.packageManager ?? detectPackageManager(targetRoot);
|
|
12704
12753
|
if (pm) {
|
|
12705
12754
|
operations.push({
|
|
@@ -12730,39 +12779,28 @@ async function planInit(options) {
|
|
|
12730
12779
|
const agentFiles = await discoverAgentFiles(targetRoot);
|
|
12731
12780
|
if (agentFiles.length > 0) {
|
|
12732
12781
|
for (const f of agentFiles) {
|
|
12733
|
-
|
|
12734
|
-
|
|
12735
|
-
|
|
12736
|
-
if (agentFileMode === "skip" || agentFileMode === "agents" && basename !== "AGENTS.md" || agentFileMode === "claude" && basename !== "CLAUDE.md") {
|
|
12737
|
-
operations.push({
|
|
12738
|
-
kind: "skip",
|
|
12739
|
-
path: f,
|
|
12740
|
-
ownership: "project-owned",
|
|
12741
|
-
reason: `Existing agent file skipped per policy: ${basename}`,
|
|
12742
|
-
requiresConfirmation: false,
|
|
12743
|
-
destructive: false
|
|
12744
|
-
});
|
|
12745
|
-
continue;
|
|
12746
|
-
}
|
|
12747
|
-
operations.push({
|
|
12748
|
-
kind: "update",
|
|
12749
|
-
path: f,
|
|
12750
|
-
ownership: "managed",
|
|
12751
|
-
reason: `Update existing ${basename} with Pourkit managed block`,
|
|
12752
|
-
requiresConfirmation: false,
|
|
12753
|
-
destructive: false,
|
|
12754
|
-
content: managedAgentContent
|
|
12755
|
-
});
|
|
12756
|
-
} else {
|
|
12782
|
+
const agentFileMode = options.conflictPolicy?.agentFile ?? "both";
|
|
12783
|
+
const basename = path5.basename(f);
|
|
12784
|
+
if (agentFileMode === "skip" || agentFileMode === "agents" && basename !== "AGENTS.md" || agentFileMode === "claude" && basename !== "CLAUDE.md") {
|
|
12757
12785
|
operations.push({
|
|
12758
12786
|
kind: "skip",
|
|
12759
12787
|
path: f,
|
|
12760
12788
|
ownership: "project-owned",
|
|
12761
|
-
reason: `Existing agent file: ${
|
|
12789
|
+
reason: `Existing agent file skipped per policy: ${basename}`,
|
|
12762
12790
|
requiresConfirmation: false,
|
|
12763
12791
|
destructive: false
|
|
12764
12792
|
});
|
|
12793
|
+
continue;
|
|
12765
12794
|
}
|
|
12795
|
+
operations.push({
|
|
12796
|
+
kind: "update",
|
|
12797
|
+
path: f,
|
|
12798
|
+
ownership: "managed",
|
|
12799
|
+
reason: `Update existing ${basename} with Pourkit managed block`,
|
|
12800
|
+
requiresConfirmation: false,
|
|
12801
|
+
destructive: false,
|
|
12802
|
+
content: managedAgentContent
|
|
12803
|
+
});
|
|
12766
12804
|
}
|
|
12767
12805
|
}
|
|
12768
12806
|
const merlleState = await discoverMerlleState(targetRoot);
|
|
@@ -12856,7 +12894,10 @@ async function planInit(options) {
|
|
|
12856
12894
|
destructive: false,
|
|
12857
12895
|
requiresConfirmation: false
|
|
12858
12896
|
});
|
|
12859
|
-
|
|
12897
|
+
sourceRoot = resolvePackagedSourceRoot();
|
|
12898
|
+
usingExplicitSource = false;
|
|
12899
|
+
}
|
|
12900
|
+
{
|
|
12860
12901
|
let sourceMeta;
|
|
12861
12902
|
try {
|
|
12862
12903
|
sourceMeta = await discoverLocalSource(sourceRoot);
|
|
@@ -12869,17 +12910,19 @@ async function planInit(options) {
|
|
|
12869
12910
|
releaseChannel: "unknown",
|
|
12870
12911
|
latestTag: null
|
|
12871
12912
|
};
|
|
12872
|
-
|
|
12873
|
-
|
|
12874
|
-
|
|
12875
|
-
|
|
12876
|
-
|
|
12877
|
-
|
|
12878
|
-
|
|
12879
|
-
|
|
12880
|
-
|
|
12913
|
+
if (usingExplicitSource) {
|
|
12914
|
+
warnings.push(
|
|
12915
|
+
"Source is not a Git repository; version metadata unavailable"
|
|
12916
|
+
);
|
|
12917
|
+
operations.push({
|
|
12918
|
+
kind: "warn",
|
|
12919
|
+
reason: "Source is not a Git repository; version metadata unavailable",
|
|
12920
|
+
destructive: false,
|
|
12921
|
+
requiresConfirmation: false
|
|
12922
|
+
});
|
|
12923
|
+
}
|
|
12881
12924
|
}
|
|
12882
|
-
if (sourceMeta.sourceDirty) {
|
|
12925
|
+
if (usingExplicitSource && sourceMeta.sourceDirty) {
|
|
12883
12926
|
warnings.push("Local source has uncommitted changes");
|
|
12884
12927
|
operations.push({
|
|
12885
12928
|
kind: "warn",
|
|
@@ -12894,15 +12937,13 @@ async function planInit(options) {
|
|
|
12894
12937
|
plannedSkillDests.add(op.path);
|
|
12895
12938
|
}
|
|
12896
12939
|
}
|
|
12897
|
-
const packagedManagedSkills =
|
|
12940
|
+
const packagedManagedSkills = resolveSourceAssetPath(
|
|
12898
12941
|
sourceRoot,
|
|
12899
|
-
"pourkit",
|
|
12900
12942
|
"managed",
|
|
12901
12943
|
"skills"
|
|
12902
12944
|
);
|
|
12903
|
-
const packagedReleaseAddonSkills =
|
|
12945
|
+
const packagedReleaseAddonSkills = resolveSourceAssetPath(
|
|
12904
12946
|
sourceRoot,
|
|
12905
|
-
"pourkit",
|
|
12906
12947
|
"managed",
|
|
12907
12948
|
"addons",
|
|
12908
12949
|
"release",
|
|
@@ -13151,9 +13192,8 @@ async function planInit(options) {
|
|
|
13151
13192
|
destructive: false
|
|
13152
13193
|
});
|
|
13153
13194
|
}
|
|
13154
|
-
const packagedManagedDocAgents =
|
|
13195
|
+
const packagedManagedDocAgents = resolveSourceAssetPath(
|
|
13155
13196
|
sourceRoot,
|
|
13156
|
-
"pourkit",
|
|
13157
13197
|
"managed",
|
|
13158
13198
|
"docs",
|
|
13159
13199
|
"agents"
|
|
@@ -13231,9 +13271,8 @@ Do not edit this file.
|
|
|
13231
13271
|
}
|
|
13232
13272
|
}
|
|
13233
13273
|
if (options.releaseWorkflow?.enabled) {
|
|
13234
|
-
const packagedReleaseAddonDocs =
|
|
13274
|
+
const packagedReleaseAddonDocs = resolveSourceAssetPath(
|
|
13235
13275
|
sourceRoot,
|
|
13236
|
-
"pourkit",
|
|
13237
13276
|
"managed",
|
|
13238
13277
|
"addons",
|
|
13239
13278
|
"release",
|
|
@@ -13267,9 +13306,8 @@ Do not edit this file.
|
|
|
13267
13306
|
}
|
|
13268
13307
|
}
|
|
13269
13308
|
}
|
|
13270
|
-
const packagedManagedPrompts =
|
|
13309
|
+
const packagedManagedPrompts = resolveSourceAssetPath(
|
|
13271
13310
|
sourceRoot,
|
|
13272
|
-
"pourkit",
|
|
13273
13311
|
"managed",
|
|
13274
13312
|
"prompts"
|
|
13275
13313
|
);
|
|
@@ -13369,9 +13407,8 @@ Do not edit this file.
|
|
|
13369
13407
|
"schema",
|
|
13370
13408
|
"pourkit.schema.json"
|
|
13371
13409
|
);
|
|
13372
|
-
const srcSchemaJson =
|
|
13410
|
+
const srcSchemaJson = resolveSourceAssetPath(
|
|
13373
13411
|
sourceRoot,
|
|
13374
|
-
"pourkit",
|
|
13375
13412
|
"schema",
|
|
13376
13413
|
"pourkit.schema.json"
|
|
13377
13414
|
);
|
|
@@ -13405,9 +13442,8 @@ Do not edit this file.
|
|
|
13405
13442
|
"schema",
|
|
13406
13443
|
"pourkit.schema.hash"
|
|
13407
13444
|
);
|
|
13408
|
-
const srcSchemaHash =
|
|
13445
|
+
const srcSchemaHash = resolveSourceAssetPath(
|
|
13409
13446
|
sourceRoot,
|
|
13410
|
-
"pourkit",
|
|
13411
13447
|
"schema",
|
|
13412
13448
|
"pourkit.schema.hash"
|
|
13413
13449
|
);
|
|
@@ -13562,7 +13598,7 @@ ${gitignoreContent}${MANAGED_BLOCK_END}
|
|
|
13562
13598
|
conflict: "already exists"
|
|
13563
13599
|
});
|
|
13564
13600
|
}
|
|
13565
|
-
const sourceLabel = sourceMeta.versionSource === "local-git" ? `Init from local source (${sourceMeta.branch}@${sourceMeta.sha.slice(0, 7)})` : "Init from local source (non-Git)";
|
|
13601
|
+
const sourceLabel = usingExplicitSource ? sourceMeta.versionSource === "local-git" ? `Init from local source (${sourceMeta.branch}@${sourceMeta.sha.slice(0, 7)})` : "Init from local source (non-Git)" : "Init from packaged assets";
|
|
13566
13602
|
operations.push({
|
|
13567
13603
|
kind: "copy",
|
|
13568
13604
|
sourcePath: sourceRoot,
|
|
@@ -13573,18 +13609,10 @@ ${gitignoreContent}${MANAGED_BLOCK_END}
|
|
|
13573
13609
|
destructive: false
|
|
13574
13610
|
});
|
|
13575
13611
|
}
|
|
13576
|
-
} else {
|
|
13577
|
-
warnings.push("No --from-local source provided");
|
|
13578
|
-
operations.push({
|
|
13579
|
-
kind: "warn",
|
|
13580
|
-
reason: "No --from-local source provided",
|
|
13581
|
-
destructive: false,
|
|
13582
|
-
requiresConfirmation: false
|
|
13583
|
-
});
|
|
13584
13612
|
}
|
|
13585
13613
|
return {
|
|
13586
13614
|
targetRoot,
|
|
13587
|
-
sourceRoot
|
|
13615
|
+
sourceRoot,
|
|
13588
13616
|
operations,
|
|
13589
13617
|
warnings,
|
|
13590
13618
|
hasLabelConflicts,
|
|
@@ -13990,7 +14018,7 @@ async function writeManifest(plan, sourceMeta, agentFiles, packageManager) {
|
|
|
13990
14018
|
schemaVersion: 1,
|
|
13991
14019
|
initializedAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
13992
14020
|
pourkit: {
|
|
13993
|
-
versionSource:
|
|
14021
|
+
versionSource: sourceMeta.versionSource,
|
|
13994
14022
|
releaseVersion: sourceMeta.latestTag,
|
|
13995
14023
|
releaseChannel: sourceMeta.releaseChannel,
|
|
13996
14024
|
sourceBranch: sourceMeta.branch,
|
|
@@ -14185,7 +14213,7 @@ async function applyInitFromSource(options) {
|
|
|
14185
14213
|
}
|
|
14186
14214
|
let sourceMeta;
|
|
14187
14215
|
try {
|
|
14188
|
-
sourceMeta = await discoverLocalSource(
|
|
14216
|
+
sourceMeta = await discoverLocalSource(plan.sourceRoot);
|
|
14189
14217
|
} catch {
|
|
14190
14218
|
sourceMeta = {
|
|
14191
14219
|
versionSource: "local-path",
|
|
@@ -14231,7 +14259,6 @@ async function runInitCommand(options) {
|
|
|
14231
14259
|
}
|
|
14232
14260
|
if (!isInteractive && !options.yes && !options.dryRun) {
|
|
14233
14261
|
const missing = [];
|
|
14234
|
-
if (!options.fromLocal) missing.push("--from-local");
|
|
14235
14262
|
if (!options.docsMigration) missing.push("--docs-migration");
|
|
14236
14263
|
if (!options.agentFile) missing.push("--agent-file");
|
|
14237
14264
|
if (!options.packageManager) {
|
|
@@ -14282,11 +14309,11 @@ async function runInitCommand(options) {
|
|
|
14282
14309
|
};
|
|
14283
14310
|
promptLabels = promptResult.labels;
|
|
14284
14311
|
}
|
|
14285
|
-
const conflictPolicy =
|
|
14312
|
+
const conflictPolicy = {
|
|
14286
14313
|
docsMigration: options.docsMigration ?? "copy",
|
|
14287
14314
|
agentFile: options.agentFile ?? "both",
|
|
14288
14315
|
yes: options.yes ?? false
|
|
14289
|
-
}
|
|
14316
|
+
};
|
|
14290
14317
|
const planLabels = isInteractive ? promptLabels ?? DEFAULT_RUNNER_LABELS : DEFAULT_RUNNER_LABELS;
|
|
14291
14318
|
const plan = await planInit({
|
|
14292
14319
|
targetRoot,
|
|
@@ -14341,12 +14368,6 @@ ${plan.warnings.length} warning(s) \u2014 review above before applying.`
|
|
|
14341
14368
|
}
|
|
14342
14369
|
return;
|
|
14343
14370
|
}
|
|
14344
|
-
if (!options.fromLocal) {
|
|
14345
|
-
console.error(
|
|
14346
|
-
"\nError: --from-local <path> is required to apply the init plan."
|
|
14347
|
-
);
|
|
14348
|
-
process.exit(1);
|
|
14349
|
-
}
|
|
14350
14371
|
const result = await applyInitFromSource({
|
|
14351
14372
|
targetRoot,
|
|
14352
14373
|
fromLocal: options.fromLocal,
|
|
@@ -14505,14 +14526,14 @@ async function runSerenaStatusCommand(options) {
|
|
|
14505
14526
|
import { readFileSync as readFileSync20, existsSync as existsSync19 } from "fs";
|
|
14506
14527
|
import { mkdir as mkdir6, readFile as readFile6, writeFile as writeFile3, readdir as readdir2 } from "fs/promises";
|
|
14507
14528
|
import { resolve as resolve4, dirname as dirname5, relative as relative2 } from "path";
|
|
14508
|
-
import { fileURLToPath as
|
|
14529
|
+
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
14509
14530
|
import Ajv2 from "ajv";
|
|
14510
|
-
var
|
|
14511
|
-
var
|
|
14531
|
+
var __filename3 = fileURLToPath3(import.meta.url);
|
|
14532
|
+
var __dirname3 = dirname5(__filename3);
|
|
14512
14533
|
function resolvePackagedAssetPath2(fileName) {
|
|
14513
14534
|
const candidates = [
|
|
14514
|
-
resolve4(
|
|
14515
|
-
resolve4(
|
|
14535
|
+
resolve4(__dirname3, "schema", fileName),
|
|
14536
|
+
resolve4(__dirname3, "../schema", fileName)
|
|
14516
14537
|
];
|
|
14517
14538
|
return candidates.find((candidate) => existsSync19(candidate)) ?? candidates[0];
|
|
14518
14539
|
}
|
|
@@ -14544,7 +14565,7 @@ function localSchemaDir(repoRoot2) {
|
|
|
14544
14565
|
var MANAGED_BLOCK_BEGIN2 = "<!-- BEGIN POURKIT MANAGED BLOCK -->\n";
|
|
14545
14566
|
var OLD_DOCS_PATH_PATTERN = ".pourkit/docs/agents/";
|
|
14546
14567
|
function resolvePackagedManagedPath(...segments) {
|
|
14547
|
-
return resolve4(
|
|
14568
|
+
return resolve4(__dirname3, "..", "managed", ...segments);
|
|
14548
14569
|
}
|
|
14549
14570
|
function resolvePackagedManagedDocPath(docName) {
|
|
14550
14571
|
return resolvePackagedManagedPath("docs", "agents", docName);
|
|
@@ -15211,9 +15232,9 @@ async function runConfigSyncSchemaCommand(options) {
|
|
|
15211
15232
|
import { existsSync as existsSync20, readdirSync as readdirSync5 } from "fs";
|
|
15212
15233
|
import { mkdir as mkdir7, readFile as readFile7, writeFile as writeFile4, readdir as readdir3 } from "fs/promises";
|
|
15213
15234
|
import { resolve as resolve5, dirname as dirname6, relative as relative3, normalize as normalize2 } from "path";
|
|
15214
|
-
import { fileURLToPath as
|
|
15215
|
-
var
|
|
15216
|
-
var
|
|
15235
|
+
import { fileURLToPath as fileURLToPath4 } from "url";
|
|
15236
|
+
var __filename4 = fileURLToPath4(import.meta.url);
|
|
15237
|
+
var __dirname4 = dirname6(__filename4);
|
|
15217
15238
|
var PROJECT_OWNED_PATHS = [".pourkit/CONTEXT.md", ".pourkit/CONTEXT-MAP.md"];
|
|
15218
15239
|
var PROJECT_OWNED_DIRECTORIES = [
|
|
15219
15240
|
".pourkit/docs/adr",
|
|
@@ -15224,7 +15245,7 @@ var OVERRIDES_DIR = ".pourkit/overrides";
|
|
|
15224
15245
|
var MANAGED_BLOCK_BEGIN3 = "<!-- BEGIN POURKIT MANAGED BLOCK -->\n";
|
|
15225
15246
|
var MANAGED_BLOCK_END2 = "\n<!-- END POURKIT MANAGED BLOCK -->";
|
|
15226
15247
|
function resolvePackagedManagedPath2(...segments) {
|
|
15227
|
-
const candidates = [resolve5(
|
|
15248
|
+
const candidates = [resolve5(__dirname4, "..", "managed", ...segments)];
|
|
15228
15249
|
return candidates[0];
|
|
15229
15250
|
}
|
|
15230
15251
|
function resolvePackagedManagedDocPath2(docName) {
|
|
@@ -15321,16 +15342,31 @@ function generateManagedBlockContent() {
|
|
|
15321
15342
|
return [
|
|
15322
15343
|
"This repository uses Pourkit.",
|
|
15323
15344
|
"",
|
|
15324
|
-
"##
|
|
15345
|
+
"## Pourkit Workflow Routes",
|
|
15346
|
+
"",
|
|
15347
|
+
"### Issue Tracker",
|
|
15348
|
+
"",
|
|
15349
|
+
"When using Pourkit issue workflows, see `.pourkit/managed/docs/agents/issue-tracker.md`.",
|
|
15350
|
+
"",
|
|
15351
|
+
"### Triage Labels",
|
|
15352
|
+
"",
|
|
15353
|
+
"Pourkit workflows use the default triage labels described in `.pourkit/managed/docs/agents/triage-labels.md`.",
|
|
15354
|
+
"",
|
|
15355
|
+
"### Domain Docs",
|
|
15356
|
+
"",
|
|
15357
|
+
"Follow the repository domain-documentation layout in `.pourkit/managed/docs/agents/domain.md`.",
|
|
15358
|
+
"",
|
|
15359
|
+
"### Issue Naming",
|
|
15360
|
+
"",
|
|
15361
|
+
"PRDs and child issues must follow the naming convention in `.pourkit/managed/docs/agents/naming.md`.",
|
|
15362
|
+
"",
|
|
15363
|
+
"### Git Workflow",
|
|
15364
|
+
"",
|
|
15365
|
+
"Branch naming and PR creation guidance lives in `.pourkit/managed/docs/agents/git-workflow.md`.",
|
|
15325
15366
|
"",
|
|
15326
|
-
"
|
|
15367
|
+
"### Commit Style",
|
|
15327
15368
|
"",
|
|
15328
|
-
"- `.pourkit/managed/docs/agents/
|
|
15329
|
-
"- `.pourkit/managed/docs/agents/triage-labels.md`",
|
|
15330
|
-
"- `.pourkit/managed/docs/agents/naming.md`",
|
|
15331
|
-
"- `.pourkit/managed/docs/agents/git-workflow.md`",
|
|
15332
|
-
"- `.pourkit/managed/docs/agents/commit-style.md`",
|
|
15333
|
-
"- `.pourkit/managed/docs/agents/domain.md`",
|
|
15369
|
+
"Agents must write readable conventional commits with bullet-list bodies for non-trivial changes. See `.pourkit/managed/docs/agents/commit-style.md`.",
|
|
15334
15370
|
"",
|
|
15335
15371
|
"### Project-owned context",
|
|
15336
15372
|
"",
|
|
@@ -17193,7 +17229,10 @@ function createCliProgram(version) {
|
|
|
17193
17229
|
const result = runPrdRunListCommand({ repoRoot: targetRepoRoot });
|
|
17194
17230
|
console.log(JSON.stringify(result, null, 2));
|
|
17195
17231
|
});
|
|
17196
|
-
program.command("init").description("Initialize .pourkit layout in a target repo").option("--dry-run", "print the init plan without applying changes").option("--json", "output machine-readable JSON plan").option(
|
|
17232
|
+
program.command("init").description("Initialize .pourkit layout in a target repo").option("--dry-run", "print the init plan without applying changes").option("--json", "output machine-readable JSON plan").option(
|
|
17233
|
+
"--from-local <path>",
|
|
17234
|
+
"deprecated: local source repo to copy artifacts from"
|
|
17235
|
+
).option("--cwd <path>", "target repository directory").addOption(
|
|
17197
17236
|
new Option(
|
|
17198
17237
|
"--docs-migration <mode>",
|
|
17199
17238
|
"docs migration mode: copy, move, skip"
|
|
@@ -17392,11 +17431,11 @@ function createCliProgram(version) {
|
|
|
17392
17431
|
return program;
|
|
17393
17432
|
}
|
|
17394
17433
|
async function resolveCliVersion() {
|
|
17395
|
-
if (isPackageVersion("0.0.0-next-
|
|
17396
|
-
return "0.0.0-next-
|
|
17434
|
+
if (isPackageVersion("0.0.0-next-20260617220545")) {
|
|
17435
|
+
return "0.0.0-next-20260617220545";
|
|
17397
17436
|
}
|
|
17398
|
-
if (isReleaseVersion("0.0.0-next-
|
|
17399
|
-
return "0.0.0-next-
|
|
17437
|
+
if (isReleaseVersion("0.0.0-next-20260617220545")) {
|
|
17438
|
+
return "0.0.0-next-20260617220545";
|
|
17400
17439
|
}
|
|
17401
17440
|
try {
|
|
17402
17441
|
const root = repoRoot();
|