panopticon-cli 0.5.9 → 0.5.10
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/{agents-M2ZOZL3P.js → agents-MOMDECON.js} +3 -3
- package/dist/{archive-planning-U3AZAKWI.js → archive-planning-54J6EP6A.js} +3 -3
- package/dist/{chunk-3WDSD2VK.js → chunk-4OQ4SXQZ.js} +186 -88
- package/dist/chunk-4OQ4SXQZ.js.map +1 -0
- package/dist/{chunk-KPGVCGST.js → chunk-BHRMW7BY.js} +7 -3
- package/dist/chunk-BHRMW7BY.js.map +1 -0
- package/dist/{chunk-WEQW3EAT.js → chunk-F4XS2FQN.js} +3 -2
- package/dist/chunk-F4XS2FQN.js.map +1 -0
- package/dist/{chunk-OJF4QS3S.js → chunk-GIW2TUWI.js} +2 -2
- package/dist/{chunk-GM22HPYS.js → chunk-H7T35QDO.js} +21 -3
- package/dist/chunk-H7T35QDO.js.map +1 -0
- package/dist/{chunk-MJXYTGK5.js → chunk-JZWCL5S5.js} +2 -2
- package/dist/{chunk-4R6ATXYI.js → chunk-PFA5XE2V.js} +1 -37
- package/dist/chunk-PFA5XE2V.js.map +1 -0
- package/dist/{chunk-6OYUJ4AJ.js → chunk-R47UJWF6.js} +2 -2
- package/dist/{chunk-QQ27EVBD.js → chunk-RCYJK3ZC.js} +3 -3
- package/dist/{chunk-R4KPLLRB.js → chunk-SFX3BG6N.js} +1 -1
- package/dist/chunk-SFX3BG6N.js.map +1 -0
- package/dist/clean-planning-V4SSVU26.js +9 -0
- package/dist/cli/index.js +1111 -901
- package/dist/cli/index.js.map +1 -1
- package/dist/close-issue-5OMOP2FU.js +9 -0
- package/dist/compact-beads-YQDVF6FQ.js +9 -0
- package/dist/dashboard/prompts/merge-agent.md +11 -0
- package/dist/dashboard/prompts/review-agent.md +9 -0
- package/dist/dashboard/prompts/test-agent.md +9 -0
- package/dist/dashboard/prompts/work-agent.md +10 -2
- package/dist/dashboard/public/assets/index-5hYjhhGn.js +826 -0
- package/dist/dashboard/public/assets/index-DIFh3T1V.css +32 -0
- package/dist/dashboard/public/index.html +2 -2
- package/dist/dashboard/server.js +2402 -1753
- package/dist/index.d.ts +8 -3
- package/dist/index.js +3 -3
- package/dist/{label-cleanup-4HJVX6NP.js → label-cleanup-4IVZIPGK.js} +2 -2
- package/dist/{merge-agent-756U4NPX.js → merge-agent-6YOMGQMX.js} +12 -12
- package/dist/{specialist-context-UBVUUFJV.js → specialist-context-GVF4DV3M.js} +3 -3
- package/dist/{specialist-logs-FQRI3AIS.js → specialist-logs-W47SAAIU.js} +3 -3
- package/dist/{specialists-CXRGSJY3.js → specialists-SIXRWCZ3.js} +3 -3
- package/dist/{workspace-manager-OWHLR5BL.js → workspace-manager-Z57ROWBQ.js} +2 -2
- package/package.json +1 -1
- package/skills/pan-new-project/SKILL.md +1 -1
- package/skills/pan-oversee/SKILL.md +45 -10
- package/skills/plan/SKILL.md +336 -0
- package/dist/chunk-3WDSD2VK.js.map +0 -1
- package/dist/chunk-4R6ATXYI.js.map +0 -1
- package/dist/chunk-GM22HPYS.js.map +0 -1
- package/dist/chunk-KPGVCGST.js.map +0 -1
- package/dist/chunk-R4KPLLRB.js.map +0 -1
- package/dist/chunk-WEQW3EAT.js.map +0 -1
- package/dist/clean-planning-7Z5YY64X.js +0 -9
- package/dist/close-issue-CTZK777I.js +0 -9
- package/dist/compact-beads-72SHALOL.js +0 -9
- package/dist/dashboard/public/assets/index-Bx4NCn9A.css +0 -32
- package/dist/dashboard/public/assets/index-DqPey4Of.js +0 -756
- package/skills/opus-plan/SKILL.md +0 -400
- /package/dist/{agents-M2ZOZL3P.js.map → agents-MOMDECON.js.map} +0 -0
- /package/dist/{archive-planning-U3AZAKWI.js.map → archive-planning-54J6EP6A.js.map} +0 -0
- /package/dist/{chunk-OJF4QS3S.js.map → chunk-GIW2TUWI.js.map} +0 -0
- /package/dist/{chunk-MJXYTGK5.js.map → chunk-JZWCL5S5.js.map} +0 -0
- /package/dist/{chunk-6OYUJ4AJ.js.map → chunk-R47UJWF6.js.map} +0 -0
- /package/dist/{chunk-QQ27EVBD.js.map → chunk-RCYJK3ZC.js.map} +0 -0
- /package/dist/{clean-planning-7Z5YY64X.js.map → clean-planning-V4SSVU26.js.map} +0 -0
- /package/dist/{close-issue-CTZK777I.js.map → close-issue-5OMOP2FU.js.map} +0 -0
- /package/dist/{compact-beads-72SHALOL.js.map → compact-beads-YQDVF6FQ.js.map} +0 -0
- /package/dist/{label-cleanup-4HJVX6NP.js.map → label-cleanup-4IVZIPGK.js.map} +0 -0
- /package/dist/{merge-agent-756U4NPX.js.map → merge-agent-6YOMGQMX.js.map} +0 -0
- /package/dist/{specialist-context-UBVUUFJV.js.map → specialist-context-GVF4DV3M.js.map} +0 -0
- /package/dist/{specialist-logs-FQRI3AIS.js.map → specialist-logs-W47SAAIU.js.map} +0 -0
- /package/dist/{specialists-CXRGSJY3.js.map → specialists-SIXRWCZ3.js.map} +0 -0
- /package/dist/{workspace-manager-OWHLR5BL.js.map → workspace-manager-Z57ROWBQ.js.map} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -390,9 +390,14 @@ interface MigrationResult {
|
|
|
390
390
|
* .panopticon directories. Removes only those symlinks, preserving any
|
|
391
391
|
* user-created content (real files/directories).
|
|
392
392
|
*
|
|
393
|
-
* This is safe to run multiple times — it's a no-op if
|
|
393
|
+
* This is safe to run multiple times — it's a no-op if nothing remains to clean up.
|
|
394
|
+
*
|
|
395
|
+
* Removes two kinds of stale Panopticon content from ~/.claude/:
|
|
396
|
+
* 1. Symlinks pointing to .panopticon or panopticon-cli (legacy sync method)
|
|
397
|
+
* 2. Plain directories that also exist in the devroot (stale copies from before
|
|
398
|
+
* the devroot migration — these cause duplicate skill listings)
|
|
394
399
|
*/
|
|
395
|
-
declare function
|
|
400
|
+
declare function migrateStalePersonalContent(): MigrationResult;
|
|
396
401
|
interface RefreshCacheResult {
|
|
397
402
|
skills: {
|
|
398
403
|
copied: number;
|
|
@@ -849,4 +854,4 @@ declare function setupCredentialFileAuth(provider: ProviderConfig, workspacePath
|
|
|
849
854
|
*/
|
|
850
855
|
declare function clearCredentialFileAuth(workspacePath: string): void;
|
|
851
856
|
|
|
852
|
-
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 RemoteFlyConfig, 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,
|
|
857
|
+
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 RemoteFlyConfig, 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, migrateStalePersonalContent, needsRouter, parseIssueRef, planHooksSync, planSync, refreshCache, requiresRouter, restoreBackup, saveConfig, saveSettings, setupCredentialFileAuth, syncHooks, syncStatusline, validateSettings };
|
package/dist/index.js
CHANGED
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
hasAlias,
|
|
14
14
|
isPanopticonSymlink,
|
|
15
15
|
listBackups,
|
|
16
|
-
|
|
16
|
+
migrateStalePersonalContent,
|
|
17
17
|
parseIssueRef,
|
|
18
18
|
planHooksSync,
|
|
19
19
|
planSync,
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
restoreBackup,
|
|
22
22
|
syncHooks,
|
|
23
23
|
syncStatusline
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-H7T35QDO.js";
|
|
25
25
|
import "./chunk-AQXETQHW.js";
|
|
26
26
|
import {
|
|
27
27
|
PROVIDERS,
|
|
@@ -213,7 +213,7 @@ export {
|
|
|
213
213
|
listBackups,
|
|
214
214
|
loadConfig,
|
|
215
215
|
loadSettings,
|
|
216
|
-
|
|
216
|
+
migrateStalePersonalContent,
|
|
217
217
|
needsRouter,
|
|
218
218
|
parseIssueRef,
|
|
219
219
|
planHooksSync,
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
stepFailed,
|
|
4
4
|
stepOk,
|
|
5
5
|
stepSkipped
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-SFX3BG6N.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esm_shims
|
|
9
9
|
} from "./chunk-ZHC57RCV.js";
|
|
@@ -100,4 +100,4 @@ async function cleanupLabelsLinear(ctx, apiKey) {
|
|
|
100
100
|
export {
|
|
101
101
|
cleanupMergedLabels
|
|
102
102
|
};
|
|
103
|
-
//# sourceMappingURL=label-cleanup-
|
|
103
|
+
//# sourceMappingURL=label-cleanup-4IVZIPGK.js.map
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
recordWake,
|
|
9
9
|
spawnEphemeralSpecialist,
|
|
10
10
|
wakeSpecialist
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4OQ4SXQZ.js";
|
|
12
12
|
import "./chunk-JQBV3Q2W.js";
|
|
13
13
|
import {
|
|
14
14
|
init_workspace_config,
|
|
15
15
|
replacePlaceholders
|
|
16
16
|
} from "./chunk-AAP4G6U7.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-PFA5XE2V.js";
|
|
18
18
|
import "./chunk-USYP2SBE.js";
|
|
19
19
|
import {
|
|
20
20
|
init_config,
|
|
@@ -534,7 +534,7 @@ async function postMergeLifecycle(issueId, projectPath) {
|
|
|
534
534
|
}
|
|
535
535
|
console.log(`[merge-agent] Running post-merge cleanup for ${issueId}`);
|
|
536
536
|
try {
|
|
537
|
-
const { movePrd } = await import("./archive-planning-
|
|
537
|
+
const { movePrd } = await import("./archive-planning-54J6EP6A.js");
|
|
538
538
|
const prdResult = await movePrd({ issueId, projectPath });
|
|
539
539
|
if (prdResult.success && !prdResult.skipped) {
|
|
540
540
|
console.log(`[merge-agent] \u2713 ${prdResult.details?.join("; ")}`);
|
|
@@ -548,7 +548,7 @@ async function postMergeLifecycle(issueId, projectPath) {
|
|
|
548
548
|
console.warn(`[merge-agent] Could not move PRD: ${err}`);
|
|
549
549
|
}
|
|
550
550
|
try {
|
|
551
|
-
const { cleanPlanningArtifacts } = await import("./clean-planning-
|
|
551
|
+
const { cleanPlanningArtifacts } = await import("./clean-planning-V4SSVU26.js");
|
|
552
552
|
const cleanResult = await cleanPlanningArtifacts({ issueId, projectPath });
|
|
553
553
|
if (cleanResult.success && !cleanResult.skipped) {
|
|
554
554
|
console.log(`[merge-agent] \u2713 ${cleanResult.details?.join("; ")}`);
|
|
@@ -563,7 +563,7 @@ async function postMergeLifecycle(issueId, projectPath) {
|
|
|
563
563
|
}
|
|
564
564
|
closeIssueWithCircuitBreaker(issueId, projectPath);
|
|
565
565
|
try {
|
|
566
|
-
const { cleanupMergedLabels } = await import("./label-cleanup-
|
|
566
|
+
const { cleanupMergedLabels } = await import("./label-cleanup-4IVZIPGK.js");
|
|
567
567
|
const ghResolved = resolveGitHubIssue(issueId);
|
|
568
568
|
const labelCtx = ghResolved.isGitHub ? { issueId, projectPath, github: { owner: ghResolved.owner, repo: ghResolved.repo, number: ghResolved.number } } : { issueId, projectPath };
|
|
569
569
|
const labelResult = await cleanupMergedLabels(labelCtx);
|
|
@@ -579,7 +579,7 @@ async function postMergeLifecycle(issueId, projectPath) {
|
|
|
579
579
|
console.warn(`[merge-agent] Could not clean labels: ${err}`);
|
|
580
580
|
}
|
|
581
581
|
try {
|
|
582
|
-
const { compactBeads } = await import("./compact-beads-
|
|
582
|
+
const { compactBeads } = await import("./compact-beads-YQDVF6FQ.js");
|
|
583
583
|
const beadsResult = await compactBeads({ issueId, projectPath });
|
|
584
584
|
if (beadsResult.success && !beadsResult.skipped) {
|
|
585
585
|
console.log(`[merge-agent] \u2713 ${beadsResult.details?.join("; ")}`);
|
|
@@ -589,7 +589,7 @@ async function postMergeLifecycle(issueId, projectPath) {
|
|
|
589
589
|
console.warn(`[merge-agent] Beads compaction failed: ${err}`);
|
|
590
590
|
}
|
|
591
591
|
try {
|
|
592
|
-
const { getAgentState, saveAgentState } = await import("./agents-
|
|
592
|
+
const { getAgentState, saveAgentState } = await import("./agents-MOMDECON.js");
|
|
593
593
|
const { killSession, sessionExists: sessionExists2 } = await import("./tmux-X2I5SAIJ.js");
|
|
594
594
|
const agentId = `agent-${issueId.toLowerCase()}`;
|
|
595
595
|
const agentState = getAgentState(agentId);
|
|
@@ -609,8 +609,8 @@ async function postMergeLifecycle(issueId, projectPath) {
|
|
|
609
609
|
console.warn(`[merge-agent] Could not kill agent sessions: ${err}`);
|
|
610
610
|
}
|
|
611
611
|
try {
|
|
612
|
-
const { findWorkspacePath } = await import("./archive-planning-
|
|
613
|
-
const { stopWorkspaceDocker } = await import("./workspace-manager-
|
|
612
|
+
const { findWorkspacePath } = await import("./archive-planning-54J6EP6A.js");
|
|
613
|
+
const { stopWorkspaceDocker } = await import("./workspace-manager-Z57ROWBQ.js");
|
|
614
614
|
const issueLower = issueId.toLowerCase();
|
|
615
615
|
const workspacePath = findWorkspacePath(projectPath, issueLower);
|
|
616
616
|
if (workspacePath) {
|
|
@@ -636,7 +636,7 @@ function closeIssueWithCircuitBreaker(issueId, projectPath) {
|
|
|
636
636
|
}
|
|
637
637
|
(async () => {
|
|
638
638
|
try {
|
|
639
|
-
const { closeIssue } = await import("./close-issue-
|
|
639
|
+
const { closeIssue } = await import("./close-issue-5OMOP2FU.js");
|
|
640
640
|
const ghResolved = resolveGitHubIssue(issueId);
|
|
641
641
|
const ctx = ghResolved.isGitHub ? { issueId, projectPath, github: { owner: ghResolved.owner, repo: ghResolved.repo, number: ghResolved.number } } : { issueId, projectPath };
|
|
642
642
|
const results = await closeIssue(ctx, { applyLabel: false, comment: "Merged to main via Panopticon merge-agent" });
|
|
@@ -1210,7 +1210,7 @@ Report any issues or conflicts you encountered.`;
|
|
|
1210
1210
|
console.warn(`[merge-agent] Could not resolve project for ${issueId} \u2014 falling back to global specialist. Check projects.yaml configuration.`);
|
|
1211
1211
|
}
|
|
1212
1212
|
if (mergeProjectKey) {
|
|
1213
|
-
const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-
|
|
1213
|
+
const { getAgentRuntimeState, saveAgentRuntimeState } = await import("./agents-MOMDECON.js");
|
|
1214
1214
|
const IDLE_POLL_INTERVAL = 3e3;
|
|
1215
1215
|
const IDLE_MAX_WAIT = 36e4;
|
|
1216
1216
|
const idleStart = Date.now();
|
|
@@ -1722,4 +1722,4 @@ export {
|
|
|
1722
1722
|
spawnMergeAgentForBranches,
|
|
1723
1723
|
syncMainIntoWorkspace
|
|
1724
1724
|
};
|
|
1725
|
-
//# sourceMappingURL=merge-agent-
|
|
1725
|
+
//# sourceMappingURL=merge-agent-6YOMGQMX.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getRecentRunLogs,
|
|
3
3
|
init_specialist_logs
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-4OQ4SXQZ.js";
|
|
5
5
|
import "./chunk-JQBV3Q2W.js";
|
|
6
6
|
import {
|
|
7
7
|
getModelId,
|
|
8
8
|
init_work_type_router
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PFA5XE2V.js";
|
|
10
10
|
import "./chunk-USYP2SBE.js";
|
|
11
11
|
import "./chunk-QAJAJBFW.js";
|
|
12
12
|
import {
|
|
@@ -257,4 +257,4 @@ export {
|
|
|
257
257
|
regenerateContextDigest,
|
|
258
258
|
scheduleDigestGeneration
|
|
259
259
|
};
|
|
260
|
-
//# sourceMappingURL=specialist-context-
|
|
260
|
+
//# sourceMappingURL=specialist-context-GVF4DV3M.js.map
|
|
@@ -16,9 +16,9 @@ import {
|
|
|
16
16
|
isRunLogActive,
|
|
17
17
|
listRunLogs,
|
|
18
18
|
parseLogMetadata
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-4OQ4SXQZ.js";
|
|
20
20
|
import "./chunk-JQBV3Q2W.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-PFA5XE2V.js";
|
|
22
22
|
import "./chunk-USYP2SBE.js";
|
|
23
23
|
import "./chunk-QAJAJBFW.js";
|
|
24
24
|
import "./chunk-7ZB5D46Y.js";
|
|
@@ -45,4 +45,4 @@ export {
|
|
|
45
45
|
listRunLogs,
|
|
46
46
|
parseLogMetadata
|
|
47
47
|
};
|
|
48
|
-
//# sourceMappingURL=specialist-logs-
|
|
48
|
+
//# sourceMappingURL=specialist-logs-W47SAAIU.js.map
|
|
@@ -55,9 +55,9 @@ import {
|
|
|
55
55
|
wakeSpecialist,
|
|
56
56
|
wakeSpecialistOrQueue,
|
|
57
57
|
wakeSpecialistWithTask
|
|
58
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-4OQ4SXQZ.js";
|
|
59
59
|
import "./chunk-JQBV3Q2W.js";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-PFA5XE2V.js";
|
|
61
61
|
import "./chunk-USYP2SBE.js";
|
|
62
62
|
import "./chunk-QAJAJBFW.js";
|
|
63
63
|
import "./chunk-7ZB5D46Y.js";
|
|
@@ -123,4 +123,4 @@ export {
|
|
|
123
123
|
wakeSpecialistOrQueue,
|
|
124
124
|
wakeSpecialistWithTask
|
|
125
125
|
};
|
|
126
|
-
//# sourceMappingURL=specialists-
|
|
126
|
+
//# sourceMappingURL=specialists-SIXRWCZ3.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
preTrustDirectory,
|
|
5
5
|
removeWorkspace,
|
|
6
6
|
stopWorkspaceDocker
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-BHRMW7BY.js";
|
|
8
8
|
import "./chunk-JT4O4YVM.js";
|
|
9
9
|
import "./chunk-ZWZNEA26.js";
|
|
10
10
|
import "./chunk-DW3PKGIS.js";
|
|
@@ -19,4 +19,4 @@ export {
|
|
|
19
19
|
removeWorkspace,
|
|
20
20
|
stopWorkspaceDocker
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=workspace-manager-
|
|
22
|
+
//# sourceMappingURL=workspace-manager-Z57ROWBQ.js.map
|
package/package.json
CHANGED
|
@@ -266,7 +266,7 @@ Validation: 8/8 checks passed
|
|
|
266
266
|
|
|
267
267
|
Next steps:
|
|
268
268
|
1. Create issues on <tracker>
|
|
269
|
-
2. Run: pan
|
|
269
|
+
2. Run: pan plan <PREFIX>-<N> (plan with Opus)
|
|
270
270
|
3. Run: pan work issue <PREFIX>-<N> (spawn implementation agent)
|
|
271
271
|
```
|
|
272
272
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pan-oversee
|
|
3
|
-
description:
|
|
3
|
+
description: Test the Panopticon framework by supervising an agent through the full lifecycle, identifying and filing every bug encountered
|
|
4
4
|
triggers:
|
|
5
5
|
- oversee issue
|
|
6
6
|
- oversee agent
|
|
@@ -17,15 +17,35 @@ allowed-tools:
|
|
|
17
17
|
- Task
|
|
18
18
|
---
|
|
19
19
|
|
|
20
|
-
# Pan Oversee —
|
|
20
|
+
# Pan Oversee — Panopticon Framework Testing
|
|
21
21
|
|
|
22
22
|
## Purpose
|
|
23
23
|
|
|
24
|
-
|
|
24
|
+
**This skill exists to test the Panopticon framework itself.** The issue being overseen is a test payload — the real goal is exercising the full agent lifecycle pipeline and identifying every bug, glitch, and rough edge along the way.
|
|
25
|
+
|
|
26
|
+
Supervise an agent working on an issue through the **entire lifecycle**:
|
|
25
27
|
`spawn/resume → work → completion → review → feedback loop → test → merge-ready`
|
|
26
28
|
|
|
27
|
-
This is NOT passive monitoring
|
|
28
|
-
|
|
29
|
+
This is NOT passive monitoring. You are actively:
|
|
30
|
+
- **Watching for bugs at every stage** — dashboard rendering, agent spawning, workspace creation, beads lifecycle, specialist handoffs, status transitions, terminal output, API responses
|
|
31
|
+
- **Documenting everything** — no bug is too small. If something flickers, logs a warning, shows stale data, or doesn't match expected state, that's a finding
|
|
32
|
+
- **Fixing infrastructure bugs** when they block progress, then continuing the test
|
|
33
|
+
- **Filing or updating GitHub issues** (PAN-XXX) for every bug found
|
|
34
|
+
|
|
35
|
+
## Bug Tracking During Oversight
|
|
36
|
+
|
|
37
|
+
Maintain a running bug log throughout the session. For each finding:
|
|
38
|
+
|
|
39
|
+
1. **Note it immediately** — don't wait until the end. Capture the symptom, what you expected, and what actually happened.
|
|
40
|
+
2. **Check for existing issues** — `gh issue list --search "keyword"` before filing duplicates
|
|
41
|
+
3. **File new issues or update existing ones** — include reproduction context from this oversight run
|
|
42
|
+
4. **Categorize severity:**
|
|
43
|
+
- **Blocker** — stops the pipeline, had to fix inline to continue
|
|
44
|
+
- **Bug** — incorrect behavior but pipeline continued
|
|
45
|
+
- **Cosmetic** — dashboard display issue, misleading status, stale data
|
|
46
|
+
- **Observation** — not clearly a bug but worth investigating
|
|
47
|
+
|
|
48
|
+
At the end of the oversight session, **report a summary** to the user of all findings: what was filed, what was updated, what was fixed inline, and what needs follow-up.
|
|
29
49
|
|
|
30
50
|
## Usage
|
|
31
51
|
|
|
@@ -306,13 +326,28 @@ pan work approve PAN-{ID}
|
|
|
306
326
|
|
|
307
327
|
When you find a bug in the Panopticon infrastructure:
|
|
308
328
|
|
|
309
|
-
1. **
|
|
310
|
-
2. **
|
|
311
|
-
3. **
|
|
312
|
-
4. **
|
|
313
|
-
|
|
329
|
+
1. **Log the finding** — add to your running bug list with symptom, expected behavior, and actual behavior
|
|
330
|
+
2. **Check for existing issues** — `gh issue list --state open --search "keyword"` to avoid duplicates
|
|
331
|
+
3. **File or update a GitHub issue** — include context from this oversight run
|
|
332
|
+
4. **Assess: blocker or not?**
|
|
333
|
+
- **If blocker:** Stop the agent, fix the code, rebuild (`npx tsup` or restart dashboard), resume the agent, continue testing
|
|
334
|
+
- **If not blocker:** Log it, file the issue, keep going — don't derail the test run for non-blocking bugs
|
|
335
|
+
5. **After fixing a blocker**, verify the fix actually works by continuing through the same pipeline stage
|
|
314
336
|
6. **Continue monitoring** from the current phase
|
|
315
337
|
|
|
338
|
+
### What Counts as a Bug
|
|
339
|
+
|
|
340
|
+
Be thorough. All of these are findings worth logging:
|
|
341
|
+
- Dashboard shows wrong status, stale data, or flickers
|
|
342
|
+
- Agent state file says one thing, dashboard shows another
|
|
343
|
+
- Beads not created, duplicated, or disappearing
|
|
344
|
+
- Specialist doesn't wake up or takes too long
|
|
345
|
+
- Terminal output garbled or missing
|
|
346
|
+
- API returns unexpected response
|
|
347
|
+
- Status transition skipped or out of order
|
|
348
|
+
- Workspace in inconsistent state (e.g., directory exists but no git worktree)
|
|
349
|
+
- Any error in server logs, even if the pipeline recovers
|
|
350
|
+
|
|
316
351
|
## Key API Endpoints
|
|
317
352
|
|
|
318
353
|
| Endpoint | Method | Purpose |
|