panopticon-cli 0.4.32 → 0.5.0
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 +96 -210
- package/dist/{agents-BDFHF4T3.js → agents-E43Y3HNU.js} +10 -7
- package/dist/chunk-7SN4L4PH.js +150 -0
- package/dist/chunk-7SN4L4PH.js.map +1 -0
- package/dist/{chunk-2NIAOCIC.js → chunk-AAFQANKW.js} +358 -97
- package/dist/chunk-AAFQANKW.js.map +1 -0
- package/dist/chunk-AQXETQHW.js +113 -0
- package/dist/chunk-AQXETQHW.js.map +1 -0
- package/dist/chunk-B3PF6JPQ.js +212 -0
- package/dist/chunk-B3PF6JPQ.js.map +1 -0
- package/dist/chunk-CFCUOV3Q.js +669 -0
- package/dist/chunk-CFCUOV3Q.js.map +1 -0
- package/dist/chunk-CWELWPWQ.js +32 -0
- package/dist/chunk-CWELWPWQ.js.map +1 -0
- package/dist/chunk-DI7ABPNQ.js +352 -0
- package/dist/chunk-DI7ABPNQ.js.map +1 -0
- package/dist/{chunk-VU4FLXV5.js → chunk-FQ66DECN.js} +31 -4
- package/dist/chunk-FQ66DECN.js.map +1 -0
- package/dist/{chunk-VIWUCJ4V.js → chunk-FTCPTHIJ.js} +57 -432
- package/dist/chunk-FTCPTHIJ.js.map +1 -0
- package/dist/{review-status-GWQYY77L.js → chunk-GFP3PIPB.js} +14 -7
- package/dist/chunk-GFP3PIPB.js.map +1 -0
- package/dist/chunk-GR6ZZMCX.js +816 -0
- package/dist/chunk-GR6ZZMCX.js.map +1 -0
- package/dist/chunk-HJSM6E6U.js +1038 -0
- package/dist/chunk-HJSM6E6U.js.map +1 -0
- package/dist/{chunk-XP2DXWYP.js → chunk-HZT2AOPN.js} +164 -39
- package/dist/chunk-HZT2AOPN.js.map +1 -0
- package/dist/chunk-JQBV3Q2W.js +29 -0
- package/dist/chunk-JQBV3Q2W.js.map +1 -0
- package/dist/{chunk-BWGFN44T.js → chunk-JT4O4YVM.js} +28 -16
- package/dist/chunk-JT4O4YVM.js.map +1 -0
- package/dist/chunk-NTO3EDB3.js +600 -0
- package/dist/chunk-NTO3EDB3.js.map +1 -0
- package/dist/{chunk-JY7R7V4G.js → chunk-OMNXYPXC.js} +2 -2
- package/dist/chunk-OMNXYPXC.js.map +1 -0
- package/dist/chunk-PELXV435.js +215 -0
- package/dist/chunk-PELXV435.js.map +1 -0
- package/dist/chunk-PPRFKTVC.js +154 -0
- package/dist/chunk-PPRFKTVC.js.map +1 -0
- package/dist/chunk-WQG2TYCB.js +677 -0
- package/dist/chunk-WQG2TYCB.js.map +1 -0
- package/dist/{chunk-HCTJFIJJ.js → chunk-YLPSQAM2.js} +2 -2
- package/dist/{chunk-HCTJFIJJ.js.map → chunk-YLPSQAM2.js.map} +1 -1
- package/dist/{chunk-6HXKTOD7.js → chunk-ZTFNYOC7.js} +53 -38
- package/dist/chunk-ZTFNYOC7.js.map +1 -0
- package/dist/cli/index.js +5103 -3165
- package/dist/cli/index.js.map +1 -1
- package/dist/{config-BOAMSKTF.js → config-4CJNUE3O.js} +7 -3
- package/dist/dashboard/prompts/merge-agent.md +217 -0
- package/dist/dashboard/prompts/review-agent.md +409 -0
- package/dist/dashboard/prompts/sync-main.md +84 -0
- package/dist/dashboard/prompts/test-agent.md +283 -0
- package/dist/dashboard/prompts/work-agent.md +249 -0
- package/dist/dashboard/public/assets/index-BxpjweAL.css +32 -0
- package/dist/dashboard/public/assets/index-DQHkwvvJ.js +743 -0
- package/dist/dashboard/public/index.html +2 -2
- package/dist/dashboard/server.js +17619 -4044
- package/dist/{dns-L3L2BB27.js → dns-7BDJSD3E.js} +4 -2
- package/dist/{feedback-writer-AAKF5BTK.js → feedback-writer-LVZ5TFYZ.js} +8 -4
- package/dist/feedback-writer-LVZ5TFYZ.js.map +1 -0
- package/dist/hume-WMAUBBV2.js +13 -0
- package/dist/index.d.ts +162 -40
- package/dist/index.js +67 -23
- package/dist/index.js.map +1 -1
- package/dist/{projects-VXRUCMLM.js → projects-JEIVIYC6.js} +3 -3
- package/dist/rally-RKFSWC7E.js +10 -0
- package/dist/{remote-agents-Z3R2A5BN.js → remote-agents-TFSMW7GN.js} +2 -2
- package/dist/{remote-workspace-2G6V2KNP.js → remote-workspace-AHVHQEES.js} +8 -8
- package/dist/review-status-EPFG4XM7.js +19 -0
- package/dist/shadow-state-5MDP6YXH.js +30 -0
- package/dist/shadow-state-5MDP6YXH.js.map +1 -0
- package/dist/{specialist-context-N32QBNNQ.js → specialist-context-ZC6A4M3I.js} +8 -7
- package/dist/{specialist-context-N32QBNNQ.js.map → specialist-context-ZC6A4M3I.js.map} +1 -1
- package/dist/{specialist-logs-GF3YV4KL.js → specialist-logs-KLGJCEUL.js} +7 -6
- package/dist/specialist-logs-KLGJCEUL.js.map +1 -0
- package/dist/{specialists-JBIW6MP4.js → specialists-O4HWDJL5.js} +7 -6
- package/dist/specialists-O4HWDJL5.js.map +1 -0
- package/dist/tldr-daemon-T3THOUGT.js +21 -0
- package/dist/tldr-daemon-T3THOUGT.js.map +1 -0
- package/dist/traefik-QN7R5I6V.js +19 -0
- package/dist/traefik-QN7R5I6V.js.map +1 -0
- package/dist/tunnel-W2GZBLEV.js +13 -0
- package/dist/tunnel-W2GZBLEV.js.map +1 -0
- package/dist/workspace-manager-IE4JL2JP.js +22 -0
- package/dist/workspace-manager-IE4JL2JP.js.map +1 -0
- package/package.json +2 -2
- package/scripts/heartbeat-hook +37 -10
- package/scripts/patches/llm-tldr-tsx-support.py +109 -0
- package/scripts/pre-tool-hook +26 -15
- package/scripts/record-cost-event.js +177 -43
- package/scripts/record-cost-event.ts +87 -3
- package/scripts/statusline.sh +169 -0
- package/scripts/stop-hook +21 -11
- package/scripts/tldr-post-edit +72 -0
- package/scripts/tldr-read-enforcer +275 -0
- package/scripts/work-agent-stop-hook +137 -0
- package/skills/check-merged/SKILL.md +143 -0
- package/skills/crash-investigation/SKILL.md +301 -0
- package/skills/github-cli/SKILL.md +185 -0
- package/skills/myn-standards/SKILL.md +351 -0
- package/skills/pan-reopen/SKILL.md +65 -0
- package/skills/pan-sync-main/SKILL.md +87 -0
- package/skills/pan-tldr/SKILL.md +149 -0
- package/skills/react-best-practices/SKILL.md +125 -0
- package/skills/spec-readiness/REPORT-TEMPLATE.md +158 -0
- package/skills/spec-readiness/SCORING-REFERENCE.md +369 -0
- package/skills/spec-readiness/SKILL.md +400 -0
- package/skills/spec-readiness-setup/SKILL.md +361 -0
- package/skills/workspace-status/SKILL.md +56 -0
- package/skills/write-spec/SKILL.md +138 -0
- package/templates/traefik/dynamic/panopticon.yml.template +0 -5
- package/templates/traefik/traefik.yml +0 -8
- package/dist/chunk-2NIAOCIC.js.map +0 -1
- package/dist/chunk-3XAB4IXF.js +0 -51
- package/dist/chunk-3XAB4IXF.js.map +0 -1
- package/dist/chunk-6HXKTOD7.js.map +0 -1
- package/dist/chunk-BBCUK6N2.js +0 -241
- package/dist/chunk-BBCUK6N2.js.map +0 -1
- package/dist/chunk-BWGFN44T.js.map +0 -1
- package/dist/chunk-ELK6Q7QI.js +0 -545
- package/dist/chunk-ELK6Q7QI.js.map +0 -1
- package/dist/chunk-JY7R7V4G.js.map +0 -1
- package/dist/chunk-LYSBSZYV.js +0 -1523
- package/dist/chunk-LYSBSZYV.js.map +0 -1
- package/dist/chunk-VIWUCJ4V.js.map +0 -1
- package/dist/chunk-VU4FLXV5.js.map +0 -1
- package/dist/chunk-XP2DXWYP.js.map +0 -1
- package/dist/dashboard/public/assets/index-C7X6LP5Z.css +0 -32
- package/dist/dashboard/public/assets/index-ClYqpcAJ.js +0 -645
- package/dist/feedback-writer-AAKF5BTK.js.map +0 -1
- package/dist/review-status-GWQYY77L.js.map +0 -1
- package/dist/traefik-CUJM6K5Z.js +0 -12
- /package/dist/{agents-BDFHF4T3.js.map → agents-E43Y3HNU.js.map} +0 -0
- /package/dist/{config-BOAMSKTF.js.map → config-4CJNUE3O.js.map} +0 -0
- /package/dist/{dns-L3L2BB27.js.map → dns-7BDJSD3E.js.map} +0 -0
- /package/dist/{projects-VXRUCMLM.js.map → hume-WMAUBBV2.js.map} +0 -0
- /package/dist/{remote-agents-Z3R2A5BN.js.map → projects-JEIVIYC6.js.map} +0 -0
- /package/dist/{specialist-logs-GF3YV4KL.js.map → rally-RKFSWC7E.js.map} +0 -0
- /package/dist/{specialists-JBIW6MP4.js.map → remote-agents-TFSMW7GN.js.map} +0 -0
- /package/dist/{remote-workspace-2G6V2KNP.js.map → remote-workspace-AHVHQEES.js.map} +0 -0
- /package/dist/{traefik-CUJM6K5Z.js.map → review-status-EPFG4XM7.js.map} +0 -0
|
@@ -5,14 +5,16 @@ import {
|
|
|
5
5
|
addWsl2HostEntry,
|
|
6
6
|
detectDnsSyncMethod,
|
|
7
7
|
ensureBaseDomain,
|
|
8
|
+
init_dns,
|
|
8
9
|
removeDnsEntry,
|
|
9
10
|
removeDnsmasqEntry,
|
|
10
11
|
removeHostsFileEntry,
|
|
11
12
|
removeWsl2HostEntry,
|
|
12
13
|
restartDnsmasq,
|
|
13
14
|
syncDnsToWindows
|
|
14
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-JT4O4YVM.js";
|
|
15
16
|
import "./chunk-ZHC57RCV.js";
|
|
17
|
+
init_dns();
|
|
16
18
|
export {
|
|
17
19
|
addDnsEntry,
|
|
18
20
|
addDnsmasqEntry,
|
|
@@ -27,4 +29,4 @@ export {
|
|
|
27
29
|
restartDnsmasq,
|
|
28
30
|
syncDnsToWindows
|
|
29
31
|
};
|
|
30
|
-
//# sourceMappingURL=dns-
|
|
32
|
+
//# sourceMappingURL=dns-7BDJSD3E.js.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
init_projects,
|
|
3
3
|
resolveProjectFromIssue
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-OMNXYPXC.js";
|
|
5
|
+
import "./chunk-ZTFNYOC7.js";
|
|
6
6
|
import {
|
|
7
7
|
__esm,
|
|
8
8
|
init_esm_shims
|
|
@@ -57,7 +57,11 @@ async function appendToStateMd(planningDir, entry) {
|
|
|
57
57
|
await writeFile(statePath, content, "utf-8");
|
|
58
58
|
}
|
|
59
59
|
async function writeFeedbackFile(opts) {
|
|
60
|
-
|
|
60
|
+
let providedPath = opts.workspacePath;
|
|
61
|
+
if (providedPath && !existsSync(join(providedPath, ".planning")) && !providedPath.includes("/workspaces/")) {
|
|
62
|
+
providedPath = void 0;
|
|
63
|
+
}
|
|
64
|
+
const workspacePath = providedPath || resolveWorkspacePath(opts.issueId);
|
|
61
65
|
if (!workspacePath) {
|
|
62
66
|
return { success: false, error: `Workspace not found for ${opts.issueId}` };
|
|
63
67
|
}
|
|
@@ -108,4 +112,4 @@ init_feedback_writer();
|
|
|
108
112
|
export {
|
|
109
113
|
writeFeedbackFile
|
|
110
114
|
};
|
|
111
|
-
//# sourceMappingURL=feedback-writer-
|
|
115
|
+
//# sourceMappingURL=feedback-writer-LVZ5TFYZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/cloister/feedback-writer.ts"],"sourcesContent":["/**\n * Feedback Writer — writes specialist feedback to workspace files.\n *\n * All specialist feedback (review, test, merge) is written to\n * .planning/feedback/ in the workspace, with a breadcrumb in STATE.md.\n * The work agent reads these on startup or after crash recovery.\n *\n * All I/O is async (fs/promises) — never execSync.\n */\n\nimport { writeFile, readFile, mkdir, readdir } from 'fs/promises';\nimport { existsSync } from 'fs';\nimport { join } from 'path';\nimport { resolveProjectFromIssue } from '../projects.js';\n\nexport interface WriteFeedbackOptions {\n issueId: string;\n workspacePath?: string;\n specialist: 'review-agent' | 'test-agent' | 'merge-agent';\n outcome: string;\n summary: string;\n markdownBody: string;\n}\n\nexport interface WriteFeedbackResult {\n success: boolean;\n /** Relative path from workspace root */\n relativePath?: string;\n /** Absolute path */\n filePath?: string;\n error?: string;\n}\n\n/**\n * Resolve workspace path from an issue ID.\n */\nfunction resolveWorkspacePath(issueId: string): string | null {\n const resolved = resolveProjectFromIssue(issueId);\n if (!resolved) return null;\n\n const wsPath = join(resolved.projectPath, 'workspaces', `feature-${issueId.toLowerCase()}`);\n return existsSync(wsPath) ? wsPath : null;\n}\n\n/**\n * Get the next sequence number from existing files in the feedback directory.\n */\nasync function getNextSequenceNumber(feedbackDir: string): Promise<number> {\n try {\n const files = await readdir(feedbackDir);\n let max = 0;\n for (const file of files) {\n const match = file.match(/^(\\d{3})-/);\n if (match) {\n const n = parseInt(match[1], 10);\n if (n > max) max = n;\n }\n }\n return max + 1;\n } catch {\n return 1;\n }\n}\n\n/**\n * Append a feedback entry to STATE.md's \"Specialist Feedback\" section.\n * Creates the section if it doesn't exist. Creates STATE.md if it doesn't exist.\n */\nasync function appendToStateMd(\n planningDir: string,\n entry: { timestamp: string; specialist: string; outcome: string; relativePath: string; issueId: string }\n): Promise<void> {\n const statePath = join(planningDir, 'STATE.md');\n const line = `- **[${entry.timestamp}] ${entry.specialist} → ${entry.outcome.toUpperCase()}** — \\`${entry.relativePath}\\``;\n\n let content: string;\n try {\n content = await readFile(statePath, 'utf-8');\n } catch {\n // STATE.md doesn't exist — create a minimal one\n content = `# Agent State: ${entry.issueId}\\n`;\n }\n\n const sectionHeader = '## Specialist Feedback';\n const sectionIndex = content.indexOf(sectionHeader);\n\n if (sectionIndex >= 0) {\n // Find the end of the section (next ## or EOF)\n const afterHeader = sectionIndex + sectionHeader.length;\n const nextSection = content.indexOf('\\n## ', afterHeader);\n const insertPos = nextSection >= 0 ? nextSection : content.length;\n content = content.slice(0, insertPos).trimEnd() + '\\n' + line + '\\n' + content.slice(insertPos);\n } else {\n // Append the section at the end\n content = content.trimEnd() + '\\n\\n' + sectionHeader + '\\n\\n' + line + '\\n';\n }\n\n await writeFile(statePath, content, 'utf-8');\n}\n\n/**\n * Write specialist feedback to a file in the workspace and update STATE.md.\n */\nexport async function writeFeedbackFile(opts: WriteFeedbackOptions): Promise<WriteFeedbackResult> {\n // Validate workspacePath — reject project roots (must contain /workspaces/ or have .planning dir)\n let providedPath = opts.workspacePath;\n if (providedPath && !existsSync(join(providedPath, '.planning')) && !providedPath.includes('/workspaces/')) {\n // Looks like a project root, not a workspace — fall back to resolution\n providedPath = undefined;\n }\n const workspacePath = providedPath || resolveWorkspacePath(opts.issueId);\n if (!workspacePath) {\n return { success: false, error: `Workspace not found for ${opts.issueId}` };\n }\n\n const planningDir = join(workspacePath, '.planning');\n const feedbackDir = join(planningDir, 'feedback');\n\n try {\n await mkdir(feedbackDir, { recursive: true });\n\n const seq = await getNextSequenceNumber(feedbackDir);\n const seqStr = String(seq).padStart(3, '0');\n const filename = `${seqStr}-${opts.specialist}-${opts.outcome}.md`;\n const filePath = join(feedbackDir, filename);\n const relativePath = `.planning/feedback/${filename}`;\n\n const timestamp = new Date().toISOString().replace(/\\.\\d+Z$/, 'Z');\n const shortTimestamp = timestamp.replace(/:\\d{2}Z$/, 'Z');\n\n const content = [\n '---',\n `specialist: ${opts.specialist}`,\n `issueId: ${opts.issueId}`,\n `outcome: ${opts.outcome}`,\n `timestamp: ${timestamp}`,\n '---',\n '',\n opts.markdownBody,\n '',\n ].join('\\n');\n\n await writeFile(filePath, content, 'utf-8');\n\n // Update STATE.md with breadcrumb\n await appendToStateMd(planningDir, {\n timestamp: shortTimestamp,\n specialist: opts.specialist,\n outcome: opts.outcome,\n relativePath,\n issueId: opts.issueId,\n });\n\n console.log(`[feedback-writer] Wrote ${relativePath} for ${opts.issueId}`);\n return { success: true, relativePath, filePath };\n } catch (error: any) {\n console.error(`[feedback-writer] Failed to write feedback for ${opts.issueId}:`, error);\n return { success: false, error: error.message };\n }\n}\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createHumeConfig,
|
|
3
|
+
deleteHumeConfig,
|
|
4
|
+
init_hume
|
|
5
|
+
} from "./chunk-7SN4L4PH.js";
|
|
6
|
+
import "./chunk-CWELWPWQ.js";
|
|
7
|
+
import "./chunk-ZHC57RCV.js";
|
|
8
|
+
init_hume();
|
|
9
|
+
export {
|
|
10
|
+
createHumeConfig,
|
|
11
|
+
deleteHumeConfig
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=hume-WMAUBBV2.js.map
|
package/dist/index.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ declare const BIN_DIR: string;
|
|
|
9
9
|
declare const BACKUPS_DIR: string;
|
|
10
10
|
declare const COSTS_DIR: string;
|
|
11
11
|
declare const HEARTBEATS_DIR: string;
|
|
12
|
+
declare const ARCHIVES_DIR: string;
|
|
12
13
|
declare const TRAEFIK_DIR: string;
|
|
13
14
|
declare const TRAEFIK_DYNAMIC_DIR: string;
|
|
14
15
|
declare const TRAEFIK_CERTS_DIR: string;
|
|
@@ -16,38 +17,17 @@ declare const CERTS_DIR: string;
|
|
|
16
17
|
declare const CONFIG_FILE: string;
|
|
17
18
|
declare const SETTINGS_FILE: string;
|
|
18
19
|
declare const CLAUDE_DIR: string;
|
|
19
|
-
declare const
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
readonly codex: {
|
|
30
|
-
readonly skills: string;
|
|
31
|
-
readonly commands: string;
|
|
32
|
-
readonly agents: string;
|
|
33
|
-
};
|
|
34
|
-
readonly cursor: {
|
|
35
|
-
readonly skills: string;
|
|
36
|
-
readonly commands: string;
|
|
37
|
-
readonly agents: string;
|
|
38
|
-
};
|
|
39
|
-
readonly gemini: {
|
|
40
|
-
readonly skills: string;
|
|
41
|
-
readonly commands: string;
|
|
42
|
-
readonly agents: string;
|
|
43
|
-
};
|
|
44
|
-
readonly opencode: {
|
|
45
|
-
readonly skills: string;
|
|
46
|
-
readonly commands: string;
|
|
47
|
-
readonly agents: string;
|
|
48
|
-
};
|
|
20
|
+
declare const LEGACY_RUNTIME_DIRS: {
|
|
21
|
+
readonly codex: string;
|
|
22
|
+
readonly cursor: string;
|
|
23
|
+
readonly gemini: string;
|
|
24
|
+
readonly opencode: string;
|
|
25
|
+
};
|
|
26
|
+
declare const SYNC_TARGET: {
|
|
27
|
+
readonly skills: string;
|
|
28
|
+
readonly commands: string;
|
|
29
|
+
readonly agents: string;
|
|
49
30
|
};
|
|
50
|
-
type Runtime = keyof typeof SYNC_TARGETS;
|
|
51
31
|
declare const TEMPLATES_DIR: string;
|
|
52
32
|
declare const CLAUDE_MD_TEMPLATES: string;
|
|
53
33
|
declare const SOURCE_TEMPLATES_DIR: string;
|
|
@@ -55,6 +35,21 @@ declare const SOURCE_TRAEFIK_TEMPLATES: string;
|
|
|
55
35
|
declare const SOURCE_SCRIPTS_DIR: string;
|
|
56
36
|
declare const SOURCE_SKILLS_DIR: string;
|
|
57
37
|
declare const SOURCE_DEV_SKILLS_DIR: string;
|
|
38
|
+
declare const SOURCE_AGENTS_DIR: string;
|
|
39
|
+
declare const SOURCE_RULES_DIR: string;
|
|
40
|
+
declare const CACHE_SKILLS_DIR: string;
|
|
41
|
+
declare const CACHE_AGENTS_DIR: string;
|
|
42
|
+
declare const CACHE_RULES_DIR: string;
|
|
43
|
+
declare const CACHE_MANIFEST: string;
|
|
44
|
+
declare const DOCS_DIR: string;
|
|
45
|
+
declare const PRDS_DIR: string;
|
|
46
|
+
declare const PRD_DRAFTS_DIR: string;
|
|
47
|
+
declare const PRD_PUBLISHED_DIR: string;
|
|
48
|
+
declare const PROJECT_DOCS_SUBDIR = "docs";
|
|
49
|
+
declare const PROJECT_PRDS_SUBDIR = "prds";
|
|
50
|
+
declare const PROJECT_PRDS_ACTIVE_SUBDIR = "active";
|
|
51
|
+
declare const PROJECT_PRDS_PLANNED_SUBDIR = "planned";
|
|
52
|
+
declare const PROJECT_PRDS_COMPLETED_SUBDIR = "completed";
|
|
58
53
|
/**
|
|
59
54
|
* Detect if running in development mode (from npm link or panopticon repo)
|
|
60
55
|
*
|
|
@@ -281,10 +276,13 @@ interface PanopticonConfig {
|
|
|
281
276
|
version: string;
|
|
282
277
|
};
|
|
283
278
|
sync: {
|
|
284
|
-
targets: string[];
|
|
285
279
|
backup_before_sync: boolean;
|
|
286
280
|
auto_sync?: boolean;
|
|
287
281
|
strategy?: 'symlink' | 'copy';
|
|
282
|
+
/** Parent directory where all projects live (e.g., ~/Projects).
|
|
283
|
+
* Skills are placed at <devroot>/.claude/skills/ (project level).
|
|
284
|
+
* Set to null or empty string to disable devroot skill placement. */
|
|
285
|
+
devroot?: string | null;
|
|
288
286
|
};
|
|
289
287
|
trackers: TrackersConfig;
|
|
290
288
|
dashboard: {
|
|
@@ -308,6 +306,18 @@ declare function getDefaultConfig(): PanopticonConfig;
|
|
|
308
306
|
* Reads from DASHBOARD_URL env var first, then config file, then defaults.
|
|
309
307
|
*/
|
|
310
308
|
declare function getDashboardApiUrl(): string;
|
|
309
|
+
/**
|
|
310
|
+
* Get the resolved devroot path from config.
|
|
311
|
+
* Returns null if devroot is disabled (set to null or empty string).
|
|
312
|
+
* Resolves ~ to home directory and validates the directory exists.
|
|
313
|
+
*/
|
|
314
|
+
declare function getDevrootPath(): string | null;
|
|
315
|
+
/**
|
|
316
|
+
* Find the devroot for a given project path.
|
|
317
|
+
* Tries config first, then walks up from projectPath looking for .claude/ directory.
|
|
318
|
+
* Returns the project path itself as last resort.
|
|
319
|
+
*/
|
|
320
|
+
declare function findDevrootForProject(projectPath: string): string;
|
|
311
321
|
|
|
312
322
|
type Shell = 'bash' | 'zsh' | 'fish' | 'unknown';
|
|
313
323
|
declare function detectShell(): Shell;
|
|
@@ -327,6 +337,22 @@ declare function listBackups(): BackupInfo[];
|
|
|
327
337
|
declare function restoreBackup(timestamp: string, targetDirs: Record<string, string>): void;
|
|
328
338
|
declare function cleanOldBackups(keepCount?: number): number;
|
|
329
339
|
|
|
340
|
+
/**
|
|
341
|
+
* Result of comparing a file against the manifest.
|
|
342
|
+
*/
|
|
343
|
+
type FileStatus = {
|
|
344
|
+
action: 'new';
|
|
345
|
+
} | {
|
|
346
|
+
action: 'update';
|
|
347
|
+
currentHash: string;
|
|
348
|
+
} | {
|
|
349
|
+
action: 'modified';
|
|
350
|
+
currentHash: string;
|
|
351
|
+
manifestHash: string;
|
|
352
|
+
} | {
|
|
353
|
+
action: 'user-owned';
|
|
354
|
+
};
|
|
355
|
+
|
|
330
356
|
interface SyncItem {
|
|
331
357
|
name: string;
|
|
332
358
|
sourcePath: string;
|
|
@@ -334,33 +360,94 @@ interface SyncItem {
|
|
|
334
360
|
status: 'new' | 'exists' | 'conflict' | 'symlink';
|
|
335
361
|
}
|
|
336
362
|
interface SyncPlan {
|
|
337
|
-
runtime: Runtime;
|
|
338
363
|
skills: SyncItem[];
|
|
339
364
|
commands: SyncItem[];
|
|
340
365
|
agents: SyncItem[];
|
|
366
|
+
rules: SyncItem[];
|
|
341
367
|
devSkills: SyncItem[];
|
|
342
368
|
}
|
|
343
369
|
/**
|
|
344
370
|
* Check if a path is a Panopticon-managed symlink
|
|
345
371
|
*/
|
|
346
372
|
declare function isPanopticonSymlink(targetPath: string): boolean;
|
|
373
|
+
interface MigrationResult {
|
|
374
|
+
removedSymlinks: string[];
|
|
375
|
+
preservedUserContent: string[];
|
|
376
|
+
errors: string[];
|
|
377
|
+
}
|
|
347
378
|
/**
|
|
348
|
-
*
|
|
379
|
+
* One-time migration: remove Panopticon-managed symlinks from ~/.claude/.
|
|
380
|
+
*
|
|
381
|
+
* Detects symlinks in ~/.claude/skills/ and ~/.claude/agents/ that point to
|
|
382
|
+
* .panopticon directories. Removes only those symlinks, preserving any
|
|
383
|
+
* user-created content (real files/directories).
|
|
384
|
+
*
|
|
385
|
+
* This is safe to run multiple times — it's a no-op if no symlinks remain.
|
|
349
386
|
*/
|
|
350
|
-
declare function
|
|
387
|
+
declare function migrateFromPersonalSymlinks(): MigrationResult;
|
|
388
|
+
interface RefreshCacheResult {
|
|
389
|
+
skills: {
|
|
390
|
+
copied: number;
|
|
391
|
+
total: number;
|
|
392
|
+
};
|
|
393
|
+
agents: {
|
|
394
|
+
copied: number;
|
|
395
|
+
total: number;
|
|
396
|
+
};
|
|
397
|
+
rules: {
|
|
398
|
+
copied: number;
|
|
399
|
+
total: number;
|
|
400
|
+
};
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Refresh the ~/.panopticon/ cache from the repo source.
|
|
404
|
+
*
|
|
405
|
+
* Always copies (overwrites) skills, agents, and rules from the package's
|
|
406
|
+
* source directories to the cache. Generates ~/.panopticon/.manifest.json
|
|
407
|
+
* tracking all cached files.
|
|
408
|
+
*
|
|
409
|
+
* This replaces the old "skip if exists" behavior in `pan install`.
|
|
410
|
+
*/
|
|
411
|
+
declare function refreshCache(): RefreshCacheResult;
|
|
412
|
+
/**
|
|
413
|
+
* Devroot sync item — represents a single file to distribute.
|
|
414
|
+
*/
|
|
415
|
+
interface DevrootSyncItem {
|
|
416
|
+
/** Relative path from .claude/ (e.g., "skills/beads/SKILL.md") */
|
|
417
|
+
relativePath: string;
|
|
418
|
+
/** Absolute path to source file in cache */
|
|
419
|
+
sourcePath: string;
|
|
420
|
+
/** Absolute path to target file at devroot */
|
|
421
|
+
targetPath: string;
|
|
422
|
+
/** What action to take */
|
|
423
|
+
status: FileStatus;
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Plan what would be synced to devroot (dry run).
|
|
427
|
+
* Reads from cache, targets <devroot>/.claude/, uses manifest comparison.
|
|
428
|
+
*/
|
|
429
|
+
declare function planSync(): SyncPlan;
|
|
351
430
|
interface SyncOptions {
|
|
352
431
|
force?: boolean;
|
|
432
|
+
diff?: boolean;
|
|
353
433
|
dryRun?: boolean;
|
|
354
434
|
}
|
|
355
435
|
interface SyncResult {
|
|
356
436
|
created: string[];
|
|
437
|
+
updated: string[];
|
|
357
438
|
skipped: string[];
|
|
358
439
|
conflicts: string[];
|
|
440
|
+
diffs: Array<{
|
|
441
|
+
path: string;
|
|
442
|
+
sourceContent: string;
|
|
443
|
+
targetContent: string;
|
|
444
|
+
}>;
|
|
359
445
|
}
|
|
360
446
|
/**
|
|
361
|
-
* Execute sync
|
|
447
|
+
* Execute sync to devroot: copy from cache to <devroot>/.claude/.
|
|
448
|
+
* Uses manifest-based conflict resolution. NEVER touches ~/.claude/.
|
|
362
449
|
*/
|
|
363
|
-
declare function executeSync(
|
|
450
|
+
declare function executeSync(options?: SyncOptions): SyncResult;
|
|
364
451
|
/**
|
|
365
452
|
* Hook item for sync planning
|
|
366
453
|
*/
|
|
@@ -381,6 +468,15 @@ declare function syncHooks(): {
|
|
|
381
468
|
synced: string[];
|
|
382
469
|
errors: string[];
|
|
383
470
|
};
|
|
471
|
+
/**
|
|
472
|
+
* Sync statusline script to all supported runtimes
|
|
473
|
+
* Copies the canonical statusline.sh from panopticon scripts to each runtime's config dir
|
|
474
|
+
* and ensures the runtime's settings.json references it.
|
|
475
|
+
*/
|
|
476
|
+
declare function syncStatusline(): {
|
|
477
|
+
synced: string[];
|
|
478
|
+
errors: string[];
|
|
479
|
+
};
|
|
384
480
|
|
|
385
481
|
/**
|
|
386
482
|
* Linear Issue Tracker Adapter
|
|
@@ -575,7 +671,7 @@ declare class LinkManager {
|
|
|
575
671
|
}
|
|
576
672
|
declare function getLinkManager(): LinkManager;
|
|
577
673
|
|
|
578
|
-
type AnthropicModel = 'claude-opus-4-6' | 'claude-sonnet-4-5' | 'claude-haiku-4-5';
|
|
674
|
+
type AnthropicModel = 'claude-opus-4-6' | 'claude-sonnet-4-6' | 'claude-sonnet-4-5' | 'claude-haiku-4-5';
|
|
579
675
|
type OpenAIModel = 'gpt-5.2-codex' | 'o3-deep-research' | 'gpt-4o' | 'gpt-4o-mini';
|
|
580
676
|
type GoogleModel = 'gemini-3-pro-preview' | 'gemini-3-flash-preview' | 'gemini-2.5-pro' | 'gemini-2.5-flash';
|
|
581
677
|
type ZAIModel = 'glm-4.7' | 'glm-4.7-flash';
|
|
@@ -592,7 +688,6 @@ type ComplexityModels = {
|
|
|
592
688
|
};
|
|
593
689
|
interface ModelsConfig {
|
|
594
690
|
specialists: SpecialistModels;
|
|
595
|
-
planning_agent: ModelId;
|
|
596
691
|
status_review: ModelId;
|
|
597
692
|
complexity: ComplexityModels;
|
|
598
693
|
}
|
|
@@ -674,11 +769,21 @@ type ProviderCompatibility = 'direct' | 'router';
|
|
|
674
769
|
/**
|
|
675
770
|
* Provider configuration
|
|
676
771
|
*/
|
|
772
|
+
/**
|
|
773
|
+
* Auth type for direct providers:
|
|
774
|
+
* - static: Use a long-lived API key passed via ANTHROPIC_AUTH_TOKEN (default)
|
|
775
|
+
* - credential-file: Use apiKeyHelper to read a fresh token from a credential file.
|
|
776
|
+
* Used for providers like Kimi Code Plan whose JWT tokens expire every ~15 minutes.
|
|
777
|
+
*/
|
|
778
|
+
type ProviderAuthType = 'static' | 'credential-file';
|
|
677
779
|
interface ProviderConfig {
|
|
678
780
|
name: ProviderName;
|
|
679
781
|
displayName: string;
|
|
680
782
|
compatibility: ProviderCompatibility;
|
|
681
783
|
baseUrl?: string;
|
|
784
|
+
authType?: ProviderAuthType;
|
|
785
|
+
credentialFile?: string;
|
|
786
|
+
credentialHelper?: string;
|
|
682
787
|
models: ModelId[];
|
|
683
788
|
tested: boolean;
|
|
684
789
|
description: string;
|
|
@@ -716,5 +821,22 @@ declare function needsRouter(apiKeys: {
|
|
|
716
821
|
* Get environment variables for spawning agent with specific provider
|
|
717
822
|
*/
|
|
718
823
|
declare function getProviderEnv(provider: ProviderConfig, apiKey: string): Record<string, string>;
|
|
824
|
+
/**
|
|
825
|
+
* For credential-file providers (e.g. Kimi Code Plan), configure Claude Code's
|
|
826
|
+
* apiKeyHelper in the workspace settings so tokens are refreshed dynamically.
|
|
827
|
+
*
|
|
828
|
+
* This writes to .claude/settings.local.json in the workspace directory.
|
|
829
|
+
* Must be called before spawning the agent.
|
|
830
|
+
*/
|
|
831
|
+
declare function setupCredentialFileAuth(provider: ProviderConfig, workspacePath: string): void;
|
|
832
|
+
/**
|
|
833
|
+
* Clear credential-file auth from workspace settings.
|
|
834
|
+
*
|
|
835
|
+
* When switching from a credential-file provider (e.g. Kimi) to a static/plan-based
|
|
836
|
+
* provider (e.g. Anthropic), the apiKeyHelper must be removed from
|
|
837
|
+
* .claude/settings.local.json. Otherwise Claude Code will keep using the stale
|
|
838
|
+
* token helper and fail with "Invalid API key".
|
|
839
|
+
*/
|
|
840
|
+
declare function clearCredentialFileAuth(workspacePath: string): void;
|
|
719
841
|
|
|
720
|
-
export { AGENTS_DIR, type AnthropicModel, type ApiKeysConfig, BACKUPS_DIR, BIN_DIR, type BackupInfo, CERTS_DIR, CLAUDE_DIR, CLAUDE_MD_TEMPLATES,
|
|
842
|
+
export { AGENTS_DIR, ARCHIVES_DIR, type AnthropicModel, type ApiKeysConfig, BACKUPS_DIR, BIN_DIR, type BackupInfo, CACHE_AGENTS_DIR, CACHE_MANIFEST, CACHE_RULES_DIR, CACHE_SKILLS_DIR, CERTS_DIR, CLAUDE_DIR, CLAUDE_MD_TEMPLATES, COMMANDS_DIR, CONFIG_DIR, CONFIG_FILE, COSTS_DIR, type Comment, type ComplexityLevel, type ComplexityModels, DOCS_DIR, type DevrootSyncItem, type GitHubConfig, GitHubTracker, type GitLabConfig, GitLabTracker, type GoogleModel, HEARTBEATS_DIR, type HookItem, INIT_DIRS, type Issue, type IssueFilters, IssueNotFoundError, type IssueState, type IssueTracker, type IssueUpdate, type KimiModel, LEGACY_RUNTIME_DIRS, type LinearConfig, LinearTracker, type LinkDirection, LinkManager, type MigrationResult, type ModelId, type ModelsConfig, type NewIssue, NotImplementedError, type OpenAIModel, PANOPTICON_HOME, PRDS_DIR, PRD_DRAFTS_DIR, PRD_PUBLISHED_DIR, PROJECT_DOCS_SUBDIR, PROJECT_PRDS_ACTIVE_SUBDIR, PROJECT_PRDS_COMPLETED_SUBDIR, PROJECT_PRDS_PLANNED_SUBDIR, PROJECT_PRDS_SUBDIR, PROVIDERS, type PanopticonConfig, type ProviderAuthType, type ProviderCompatibility, type ProviderConfig, type ProviderName, type RallyConfig, type RefreshCacheResult, type RemoteConfig, type RemoteExeConfig, SETTINGS_FILE, SKILLS_DIR, SOURCE_AGENTS_DIR, SOURCE_DEV_SKILLS_DIR, SOURCE_RULES_DIR, SOURCE_SCRIPTS_DIR, SOURCE_SKILLS_DIR, SOURCE_TEMPLATES_DIR, SOURCE_TRAEFIK_TEMPLATES, SYNC_TARGET, type SettingsConfig, type ShadowConfig, type Shell, type SpecialistModels, type SyncItem, type SyncOptions, type SyncPlan, type SyncResult, TEMPLATES_DIR, TRAEFIK_CERTS_DIR, TRAEFIK_DIR, TRAEFIK_DYNAMIC_DIR, TrackerAuthError, type TrackerConfig, type TrackerConfigItem, type TrackerLink, type TrackerType, type TrackersConfig, type ZAIModel, addAlias, cleanOldBackups, clearCredentialFileAuth, createBackup, createBackupTimestamp, createTracker, createTrackerFromConfig, detectShell, executeSync, findDevrootForProject, formatIssueRef, getAgentCommand, getAliasInstructions, getAllTrackers, getAvailableModels, getClaudeModelFlag, getDashboardApiUrl, getDefaultConfig, getDefaultSettings, getDevrootPath, getDirectProviders, getLinkManager, getPanopticonHome, getPrimaryTracker, getProviderEnv, getProviderForModel, getRouterProviders, getSecondaryTracker, getShellRcFile, hasAlias, isAnthropicModel, isDevMode, isPanopticonSymlink, listBackups, loadConfig, loadSettings, migrateFromPersonalSymlinks, needsRouter, parseIssueRef, planHooksSync, planSync, refreshCache, requiresRouter, restoreBackup, saveConfig, saveSettings, setupCredentialFileAuth, syncHooks, syncStatusline, validateSettings };
|
package/dist/index.js
CHANGED
|
@@ -13,33 +13,37 @@ import {
|
|
|
13
13
|
hasAlias,
|
|
14
14
|
isPanopticonSymlink,
|
|
15
15
|
listBackups,
|
|
16
|
+
migrateFromPersonalSymlinks,
|
|
16
17
|
parseIssueRef,
|
|
17
18
|
planHooksSync,
|
|
18
19
|
planSync,
|
|
20
|
+
refreshCache,
|
|
19
21
|
restoreBackup,
|
|
20
|
-
syncHooks
|
|
21
|
-
|
|
22
|
+
syncHooks,
|
|
23
|
+
syncStatusline
|
|
24
|
+
} from "./chunk-WQG2TYCB.js";
|
|
25
|
+
import "./chunk-AQXETQHW.js";
|
|
22
26
|
import {
|
|
23
27
|
GitHubTracker,
|
|
24
28
|
GitLabTracker,
|
|
25
|
-
IssueNotFoundError,
|
|
26
29
|
LinearTracker,
|
|
27
|
-
NotImplementedError,
|
|
28
|
-
PROVIDERS,
|
|
29
|
-
TrackerAuthError,
|
|
30
30
|
createTracker,
|
|
31
31
|
createTrackerFromConfig,
|
|
32
|
-
getAgentCommand,
|
|
33
32
|
getAllTrackers,
|
|
33
|
+
getPrimaryTracker,
|
|
34
|
+
getSecondaryTracker
|
|
35
|
+
} from "./chunk-NTO3EDB3.js";
|
|
36
|
+
import {
|
|
37
|
+
PROVIDERS,
|
|
38
|
+
clearCredentialFileAuth,
|
|
39
|
+
getAgentCommand,
|
|
34
40
|
getAvailableModels,
|
|
35
41
|
getClaudeModelFlag,
|
|
36
42
|
getDefaultSettings,
|
|
37
43
|
getDirectProviders,
|
|
38
|
-
getPrimaryTracker,
|
|
39
44
|
getProviderEnv,
|
|
40
45
|
getProviderForModel,
|
|
41
46
|
getRouterProviders,
|
|
42
|
-
getSecondaryTracker,
|
|
43
47
|
init_providers,
|
|
44
48
|
init_settings,
|
|
45
49
|
isAnthropicModel,
|
|
@@ -47,42 +51,62 @@ import {
|
|
|
47
51
|
needsRouter,
|
|
48
52
|
requiresRouter,
|
|
49
53
|
saveSettings,
|
|
54
|
+
setupCredentialFileAuth,
|
|
50
55
|
validateSettings
|
|
51
|
-
} from "./chunk-
|
|
52
|
-
import "./chunk-BBCUK6N2.js";
|
|
56
|
+
} from "./chunk-HJSM6E6U.js";
|
|
53
57
|
import {
|
|
58
|
+
findDevrootForProject,
|
|
54
59
|
getDashboardApiUrl,
|
|
55
60
|
getDefaultConfig,
|
|
61
|
+
getDevrootPath,
|
|
56
62
|
init_config,
|
|
57
63
|
loadConfig,
|
|
58
64
|
saveConfig
|
|
59
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-FQ66DECN.js";
|
|
66
|
+
import {
|
|
67
|
+
IssueNotFoundError,
|
|
68
|
+
NotImplementedError,
|
|
69
|
+
TrackerAuthError
|
|
70
|
+
} from "./chunk-CFCUOV3Q.js";
|
|
60
71
|
import {
|
|
61
72
|
AGENTS_DIR,
|
|
73
|
+
ARCHIVES_DIR,
|
|
62
74
|
BACKUPS_DIR,
|
|
63
75
|
BIN_DIR,
|
|
76
|
+
CACHE_AGENTS_DIR,
|
|
77
|
+
CACHE_MANIFEST,
|
|
78
|
+
CACHE_RULES_DIR,
|
|
79
|
+
CACHE_SKILLS_DIR,
|
|
64
80
|
CERTS_DIR,
|
|
65
81
|
CLAUDE_DIR,
|
|
66
82
|
CLAUDE_MD_TEMPLATES,
|
|
67
|
-
CODEX_DIR,
|
|
68
83
|
COMMANDS_DIR,
|
|
69
84
|
CONFIG_DIR,
|
|
70
85
|
CONFIG_FILE,
|
|
71
86
|
COSTS_DIR,
|
|
72
|
-
|
|
73
|
-
GEMINI_DIR,
|
|
87
|
+
DOCS_DIR,
|
|
74
88
|
HEARTBEATS_DIR,
|
|
75
89
|
INIT_DIRS,
|
|
76
|
-
|
|
90
|
+
LEGACY_RUNTIME_DIRS,
|
|
77
91
|
PANOPTICON_HOME,
|
|
92
|
+
PRDS_DIR,
|
|
93
|
+
PRD_DRAFTS_DIR,
|
|
94
|
+
PRD_PUBLISHED_DIR,
|
|
95
|
+
PROJECT_DOCS_SUBDIR,
|
|
96
|
+
PROJECT_PRDS_ACTIVE_SUBDIR,
|
|
97
|
+
PROJECT_PRDS_COMPLETED_SUBDIR,
|
|
98
|
+
PROJECT_PRDS_PLANNED_SUBDIR,
|
|
99
|
+
PROJECT_PRDS_SUBDIR,
|
|
78
100
|
SETTINGS_FILE,
|
|
79
101
|
SKILLS_DIR,
|
|
102
|
+
SOURCE_AGENTS_DIR,
|
|
80
103
|
SOURCE_DEV_SKILLS_DIR,
|
|
104
|
+
SOURCE_RULES_DIR,
|
|
81
105
|
SOURCE_SCRIPTS_DIR,
|
|
82
106
|
SOURCE_SKILLS_DIR,
|
|
83
107
|
SOURCE_TEMPLATES_DIR,
|
|
84
108
|
SOURCE_TRAEFIK_TEMPLATES,
|
|
85
|
-
|
|
109
|
+
SYNC_TARGET,
|
|
86
110
|
TEMPLATES_DIR,
|
|
87
111
|
TRAEFIK_CERTS_DIR,
|
|
88
112
|
TRAEFIK_DIR,
|
|
@@ -90,7 +114,7 @@ import {
|
|
|
90
114
|
getPanopticonHome,
|
|
91
115
|
init_paths,
|
|
92
116
|
isDevMode
|
|
93
|
-
} from "./chunk-
|
|
117
|
+
} from "./chunk-ZTFNYOC7.js";
|
|
94
118
|
import {
|
|
95
119
|
init_esm_shims
|
|
96
120
|
} from "./chunk-ZHC57RCV.js";
|
|
@@ -103,37 +127,50 @@ init_providers();
|
|
|
103
127
|
init_settings();
|
|
104
128
|
export {
|
|
105
129
|
AGENTS_DIR,
|
|
130
|
+
ARCHIVES_DIR,
|
|
106
131
|
BACKUPS_DIR,
|
|
107
132
|
BIN_DIR,
|
|
133
|
+
CACHE_AGENTS_DIR,
|
|
134
|
+
CACHE_MANIFEST,
|
|
135
|
+
CACHE_RULES_DIR,
|
|
136
|
+
CACHE_SKILLS_DIR,
|
|
108
137
|
CERTS_DIR,
|
|
109
138
|
CLAUDE_DIR,
|
|
110
139
|
CLAUDE_MD_TEMPLATES,
|
|
111
|
-
CODEX_DIR,
|
|
112
140
|
COMMANDS_DIR,
|
|
113
141
|
CONFIG_DIR,
|
|
114
142
|
CONFIG_FILE,
|
|
115
143
|
COSTS_DIR,
|
|
116
|
-
|
|
117
|
-
GEMINI_DIR,
|
|
144
|
+
DOCS_DIR,
|
|
118
145
|
GitHubTracker,
|
|
119
146
|
GitLabTracker,
|
|
120
147
|
HEARTBEATS_DIR,
|
|
121
148
|
INIT_DIRS,
|
|
122
149
|
IssueNotFoundError,
|
|
150
|
+
LEGACY_RUNTIME_DIRS,
|
|
123
151
|
LinearTracker,
|
|
124
152
|
LinkManager,
|
|
125
153
|
NotImplementedError,
|
|
126
|
-
OPENCODE_DIR,
|
|
127
154
|
PANOPTICON_HOME,
|
|
155
|
+
PRDS_DIR,
|
|
156
|
+
PRD_DRAFTS_DIR,
|
|
157
|
+
PRD_PUBLISHED_DIR,
|
|
158
|
+
PROJECT_DOCS_SUBDIR,
|
|
159
|
+
PROJECT_PRDS_ACTIVE_SUBDIR,
|
|
160
|
+
PROJECT_PRDS_COMPLETED_SUBDIR,
|
|
161
|
+
PROJECT_PRDS_PLANNED_SUBDIR,
|
|
162
|
+
PROJECT_PRDS_SUBDIR,
|
|
128
163
|
PROVIDERS,
|
|
129
164
|
SETTINGS_FILE,
|
|
130
165
|
SKILLS_DIR,
|
|
166
|
+
SOURCE_AGENTS_DIR,
|
|
131
167
|
SOURCE_DEV_SKILLS_DIR,
|
|
168
|
+
SOURCE_RULES_DIR,
|
|
132
169
|
SOURCE_SCRIPTS_DIR,
|
|
133
170
|
SOURCE_SKILLS_DIR,
|
|
134
171
|
SOURCE_TEMPLATES_DIR,
|
|
135
172
|
SOURCE_TRAEFIK_TEMPLATES,
|
|
136
|
-
|
|
173
|
+
SYNC_TARGET,
|
|
137
174
|
TEMPLATES_DIR,
|
|
138
175
|
TRAEFIK_CERTS_DIR,
|
|
139
176
|
TRAEFIK_DIR,
|
|
@@ -141,12 +178,14 @@ export {
|
|
|
141
178
|
TrackerAuthError,
|
|
142
179
|
addAlias,
|
|
143
180
|
cleanOldBackups,
|
|
181
|
+
clearCredentialFileAuth,
|
|
144
182
|
createBackup,
|
|
145
183
|
createBackupTimestamp,
|
|
146
184
|
createTracker,
|
|
147
185
|
createTrackerFromConfig,
|
|
148
186
|
detectShell,
|
|
149
187
|
executeSync,
|
|
188
|
+
findDevrootForProject,
|
|
150
189
|
formatIssueRef,
|
|
151
190
|
getAgentCommand,
|
|
152
191
|
getAliasInstructions,
|
|
@@ -156,6 +195,7 @@ export {
|
|
|
156
195
|
getDashboardApiUrl,
|
|
157
196
|
getDefaultConfig,
|
|
158
197
|
getDefaultSettings,
|
|
198
|
+
getDevrootPath,
|
|
159
199
|
getDirectProviders,
|
|
160
200
|
getLinkManager,
|
|
161
201
|
getPanopticonHome,
|
|
@@ -172,15 +212,19 @@ export {
|
|
|
172
212
|
listBackups,
|
|
173
213
|
loadConfig,
|
|
174
214
|
loadSettings,
|
|
215
|
+
migrateFromPersonalSymlinks,
|
|
175
216
|
needsRouter,
|
|
176
217
|
parseIssueRef,
|
|
177
218
|
planHooksSync,
|
|
178
219
|
planSync,
|
|
220
|
+
refreshCache,
|
|
179
221
|
requiresRouter,
|
|
180
222
|
restoreBackup,
|
|
181
223
|
saveConfig,
|
|
182
224
|
saveSettings,
|
|
225
|
+
setupCredentialFileAuth,
|
|
183
226
|
syncHooks,
|
|
227
|
+
syncStatusline,
|
|
184
228
|
validateSettings
|
|
185
229
|
};
|
|
186
230
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Panopticon CLI - Main exports for library usage\nexport * from './lib/paths.js';\nexport * from './lib/config.js';\nexport * from './lib/shell.js';\nexport * from './lib/backup.js';\nexport * from './lib/sync.js';\nexport * from './lib/tracker/index.js';\nexport * from './lib/providers.js';\nexport * from './lib/settings.js';\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Panopticon CLI - Main exports for library usage\nexport * from './lib/paths.js';\nexport * from './lib/config.js';\nexport * from './lib/shell.js';\nexport * from './lib/backup.js';\nexport * from './lib/sync.js';\nexport * from './lib/tracker/index.js';\nexport * from './lib/providers.js';\nexport * from './lib/settings.js';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AAKA;AACA;","names":[]}
|
|
@@ -18,8 +18,8 @@ import {
|
|
|
18
18
|
resolveProjectPath,
|
|
19
19
|
saveProjectsConfig,
|
|
20
20
|
unregisterProject
|
|
21
|
-
} from "./chunk-
|
|
22
|
-
import "./chunk-
|
|
21
|
+
} from "./chunk-OMNXYPXC.js";
|
|
22
|
+
import "./chunk-ZTFNYOC7.js";
|
|
23
23
|
import "./chunk-ZHC57RCV.js";
|
|
24
24
|
init_projects();
|
|
25
25
|
export {
|
|
@@ -42,4 +42,4 @@ export {
|
|
|
42
42
|
saveProjectsConfig,
|
|
43
43
|
unregisterProject
|
|
44
44
|
};
|
|
45
|
-
//# sourceMappingURL=projects-
|
|
45
|
+
//# sourceMappingURL=projects-JEIVIYC6.js.map
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
pollRemoteAgentStatus,
|
|
9
9
|
sendToRemoteAgent,
|
|
10
10
|
spawnRemoteAgent
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YLPSQAM2.js";
|
|
12
12
|
import "./chunk-JM6V62LT.js";
|
|
13
13
|
import "./chunk-ZHC57RCV.js";
|
|
14
14
|
init_remote_agents();
|
|
@@ -22,4 +22,4 @@ export {
|
|
|
22
22
|
sendToRemoteAgent,
|
|
23
23
|
spawnRemoteAgent
|
|
24
24
|
};
|
|
25
|
-
//# sourceMappingURL=remote-agents-
|
|
25
|
+
//# sourceMappingURL=remote-agents-TFSMW7GN.js.map
|