@dendelion/paper-camp 0.6.0 → 0.8.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/dist/app/assets/index-CF8jC3IN.js +2 -0
- package/dist/app/assets/index-CF8jC3IN.js.map +1 -0
- package/dist/app/assets/index-DGXi8vpJ.js +2 -0
- package/dist/app/assets/index-DGXi8vpJ.js.map +1 -0
- package/dist/app/assets/main-D66GnCKz.css +1 -0
- package/dist/app/assets/main-DJDNx4Xs.js +218 -0
- package/dist/app/assets/main-DJDNx4Xs.js.map +1 -0
- package/dist/app/assets/sidebar-section-C2j12TzE.js +2 -0
- package/dist/app/assets/sidebar-section-C2j12TzE.js.map +1 -0
- package/dist/app/img/paper-logo.png +0 -0
- package/dist/app/img/paper-logo.svg +7 -0
- package/dist/app/index.html +7 -3
- package/dist/app/manifest.json +13 -0
- package/dist/chunks/{serializer.DbnJzwVr.js → serializer.BfH7zTwv.js} +1687 -1115
- package/dist/chunks/serializer.BfH7zTwv.js.map +1 -0
- package/dist/cli/index.js +6256 -5731
- package/dist/cli/index.js.map +1 -1
- package/dist/core/git-pr/branch.d.ts +8 -0
- package/dist/core/git-pr/branch.d.ts.map +1 -0
- package/dist/core/git-pr/index.d.ts +4 -0
- package/dist/core/git-pr/index.d.ts.map +1 -0
- package/dist/core/git-pr/pr-lookup.d.ts +57 -0
- package/dist/core/git-pr/pr-lookup.d.ts.map +1 -0
- package/dist/core/git-pr/pr.d.ts +101 -0
- package/dist/core/git-pr/pr.d.ts.map +1 -0
- package/dist/core/git-pr/pr.test.d.ts +2 -0
- package/dist/core/git-pr/pr.test.d.ts.map +1 -0
- package/dist/core/git-pr/scopes.d.ts +8 -0
- package/dist/core/git-pr/scopes.d.ts.map +1 -0
- package/dist/core/index.d.ts +3 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +76 -54
- package/dist/core/parse/entity.test.d.ts.map +1 -0
- package/dist/core/parse/frontmatter-schemas.d.ts.map +1 -0
- package/dist/core/parse/frontmatter.test.d.ts.map +1 -0
- package/dist/core/parse/index.d.ts +3 -0
- package/dist/core/parse/index.d.ts.map +1 -0
- package/dist/core/{parser.d.ts → parse/parser.d.ts} +16 -11
- package/dist/core/parse/parser.d.ts.map +1 -0
- package/dist/core/parse/parser.test.d.ts.map +1 -0
- package/dist/core/{schemas.d.ts → parse/schemas.d.ts} +2 -2
- package/dist/core/parse/schemas.d.ts.map +1 -0
- package/dist/core/readers.d.ts +18 -2
- package/dist/core/readers.d.ts.map +1 -1
- package/dist/core/scaffold/index.d.ts +3 -0
- package/dist/core/scaffold/index.d.ts.map +1 -0
- package/dist/core/scaffold/scaffold.d.ts.map +1 -0
- package/dist/core/scaffold/scaffold.test.d.ts.map +1 -0
- package/dist/core/scaffold/templates.d.ts.map +1 -0
- package/dist/core/{content-hash.d.ts → serialize/content-hash.d.ts} +1 -1
- package/dist/core/serialize/content-hash.d.ts.map +1 -0
- package/dist/core/serialize/content-hash.test.d.ts.map +1 -0
- package/dist/core/serialize/index.d.ts +3 -0
- package/dist/core/serialize/index.d.ts.map +1 -0
- package/dist/core/{serializer.d.ts → serialize/serializer.d.ts} +20 -8
- package/dist/core/serialize/serializer.d.ts.map +1 -0
- package/dist/core/status/index.d.ts +2 -0
- package/dist/core/status/index.d.ts.map +1 -0
- package/dist/core/status/status.d.ts +27 -0
- package/dist/core/status/status.d.ts.map +1 -0
- package/dist/core/status/status.test.d.ts +2 -0
- package/dist/core/status/status.test.d.ts.map +1 -0
- package/dist/img/paper-logo.png +0 -0
- package/dist/img/paper-logo.svg +7 -0
- package/dist/manifest.json +13 -0
- package/dist/types/index.d.ts +83 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +7 -2
- package/dist/app/assets/main-CDaKqAAm.js +0 -200
- package/dist/app/assets/main-CDaKqAAm.js.map +0 -1
- package/dist/app/assets/main-DVU0frJi.css +0 -1
- package/dist/chunks/serializer.DbnJzwVr.js.map +0 -1
- package/dist/core/content-hash.d.ts.map +0 -1
- package/dist/core/content-hash.test.d.ts.map +0 -1
- package/dist/core/entity.test.d.ts.map +0 -1
- package/dist/core/frontmatter-schemas.d.ts.map +0 -1
- package/dist/core/frontmatter.test.d.ts.map +0 -1
- package/dist/core/parser.d.ts.map +0 -1
- package/dist/core/parser.test.d.ts.map +0 -1
- package/dist/core/scaffold.d.ts.map +0 -1
- package/dist/core/scaffold.test.d.ts.map +0 -1
- package/dist/core/schemas.d.ts.map +0 -1
- package/dist/core/serializer.d.ts.map +0 -1
- package/dist/core/templates.d.ts.map +0 -1
- /package/dist/core/{entity.test.d.ts → parse/entity.test.d.ts} +0 -0
- /package/dist/core/{frontmatter-schemas.d.ts → parse/frontmatter-schemas.d.ts} +0 -0
- /package/dist/core/{frontmatter.test.d.ts → parse/frontmatter.test.d.ts} +0 -0
- /package/dist/core/{parser.test.d.ts → parse/parser.test.d.ts} +0 -0
- /package/dist/core/{scaffold.d.ts → scaffold/scaffold.d.ts} +0 -0
- /package/dist/core/{scaffold.test.d.ts → scaffold/scaffold.test.d.ts} +0 -0
- /package/dist/core/{templates.d.ts → scaffold/templates.d.ts} +0 -0
- /package/dist/core/{content-hash.test.d.ts → serialize/content-hash.test.d.ts} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"serializer.d.ts","sourceRoot":"","sources":["../../../src/core/serialize/serializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/status/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { EntityStatus, PhaseItem, PrInfo } from '../../types/index';
|
|
2
|
+
/** The subset of an entity's shape the status ladder needs to look at. */
|
|
3
|
+
export interface StatusDerivationInput {
|
|
4
|
+
kind?: 'note';
|
|
5
|
+
status?: EntityStatus;
|
|
6
|
+
phases: PhaseItem[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Derives lifecycle status from the entity's phases and its GitHub PR instead of
|
|
10
|
+
* trusting the stored `status` field, so it can't drift from reality. Tracking
|
|
11
|
+
* keys off the PR (matched by id), not a local branch: the PR is canonical
|
|
12
|
+
* across clones and survives the branch being deleted after merge.
|
|
13
|
+
*
|
|
14
|
+
* Ladder: idea (no phases) -> planned (phases, no PR) -> in-progress (PR open or
|
|
15
|
+
* draft) -> review (PR open/draft AND every phase checked) -> done (PR merged).
|
|
16
|
+
* A closed-unmerged PR reads as `dropped`. `dropped` can never be derived
|
|
17
|
+
* (abandonment leaves no trace), so a stored `dropped` always passes through;
|
|
18
|
+
* notes track open/done/dropped by hand and pass through unchanged.
|
|
19
|
+
*
|
|
20
|
+
* `pr` is the entity's resolved PR, or `undefined` when it has none / the lookup
|
|
21
|
+
* couldn't run. `prLookupResolved` says which: `false` (no `gh`, offline) falls
|
|
22
|
+
* the PR-backed rungs back to the stored override or a phases-only `planned`;
|
|
23
|
+
* `true` with no PR is a confirmed "no PR", so it derives `planned`/`idea` (a
|
|
24
|
+
* stored terminal `done` from an unmatchable legacy PR is still trusted).
|
|
25
|
+
*/
|
|
26
|
+
export declare function deriveStatus(entity: StatusDerivationInput, pr: PrInfo | undefined, prLookupResolved: boolean): EntityStatus | undefined;
|
|
27
|
+
//# sourceMappingURL=status.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/core/status/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAEzE,0EAA0E;AAC1E,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,SAAS,EAAE,CAAC;CACrB;AAMD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,qBAAqB,EAC7B,EAAE,EAAE,MAAM,GAAG,SAAS,EACtB,gBAAgB,EAAE,OAAO,GACxB,YAAY,GAAG,SAAS,CAgB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.test.d.ts","sourceRoot":"","sources":["../../../src/core/status/status.test.ts"],"names":[],"mappings":""}
|
|
Binary file
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg width="300" height="300" viewBox="0 0 300 300" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M201.427 36.2582C179.697 28.0042 105.826 34.7081 71.2201 41.9871C65.7942 43.1853 53.6755 49.4749 48.6082 65.0481C42.274 84.5147 55.7421 133.811 57.5116 174.027C59.2811 214.244 53.7059 250.946 75.0958 270.152C92.2076 285.517 104.181 277.507 135.964 276.109C167.747 274.71 229.263 272.004 231.889 238.31C234.242 208.109 221.342 162.022 222.353 114.967C223.365 67.9123 228.589 46.5758 201.427 36.2582Z" fill="#FFD24B"/>
|
|
3
|
+
<path d="M132.817 20.6735C164.075 18.6446 194.755 14.5996 227.534 23.6671C234.799 26.6221 242.562 31.7678 246.636 39.8024C250.711 47.7237 251.209 56.0534 251.342 63.6894C251.327 79.0716 249.647 93.5512 248.908 108.225C246.054 148.899 256.649 188.784 253.676 232.608C252.073 249.127 237.005 259.354 224.736 263.57C199.557 272.22 174.18 271.817 149.619 271.866C139.299 271.75 129.255 272.85 118.138 273.367C107.266 274.521 92.489 269.973 84.7914 261.111C58.118 229.39 72.0942 191.892 70.6915 159.739C71.6006 125.079 62.4206 90.6157 67.1708 53.7931C67.5308 52.2123 67.9894 50.6156 68.597 49.0736C72.997 37.8252 82.365 28.2338 94.7502 25.6519L94.7747 25.6473C107.358 23.3309 120.106 21.8473 132.817 20.6735ZM223.737 32.4893C196.722 24.0984 163.677 26.1147 133.278 27.1435C120.68 27.8144 107.995 28.7723 95.5966 30.5044C85.9061 32.9392 77.7702 41.5456 74.4985 51.2893C74.0877 52.4692 73.7604 53.7772 73.5089 55.1226C70.3974 88.568 80.4744 123.958 80.62 159.739C82.0071 192.64 72.738 231.022 93.2309 252.491C105.593 267.236 127.75 258.118 149.619 259.036C173.875 258.879 198.712 258.732 220.211 251.241C231.015 247.368 239.819 240.602 240.738 231.023C243.753 192.085 233.662 149.684 237.291 107.462C237.598 79.4423 251.392 42.3988 223.737 32.4893Z" fill="black"/>
|
|
4
|
+
<path d="M132.757 75.2872C156.24 74.0458 179.785 73.9824 203.392 75.0978C205.078 75.1775 206.765 75.2636 208.452 75.3553C209.068 75.3893 209.67 75.6244 210.127 76.0515C210.584 76.4782 210.86 77.0559 210.892 77.6679C210.925 78.28 210.712 78.8844 210.303 79.357C209.893 79.8298 209.32 80.1264 208.711 80.2253C207.043 80.4943 205.375 80.758 203.706 81.015C180.349 84.6132 156.929 87.0323 133.447 88.2737C126.737 88.6284 119.982 88.1173 113.181 86.7405C111.481 86.3963 109.778 85.9979 108.072 85.5455C107.512 85.3948 106.967 85.132 106.555 84.7165C106.142 84.3014 105.895 83.7741 105.866 83.2202C105.836 82.6664 106.027 82.1166 106.393 81.6604C106.759 81.2038 107.272 80.8844 107.813 80.6755C109.461 80.0458 111.113 79.4698 112.767 78.9483C119.385 76.8621 126.048 75.6419 132.757 75.2872Z" fill="black"/>
|
|
5
|
+
<path d="M183.027 103.651C189.806 103.296 196.631 103.807 203.502 105.184C205.219 105.528 206.94 105.927 208.664 106.379C209.23 106.53 209.78 106.793 210.196 107.208C210.613 107.623 210.863 108.151 210.893 108.704C210.922 109.258 210.73 109.808 210.36 110.264C209.99 110.721 209.472 111.04 208.925 111.249C207.26 111.879 205.591 112.455 203.92 112.976C197.234 115.063 190.502 116.283 183.724 116.638C159.999 117.879 136.212 117.942 112.361 116.827C110.658 116.747 108.953 116.661 107.249 116.569C106.627 116.535 106.019 116.3 105.557 115.873C105.095 115.446 104.816 114.869 104.783 114.257C104.751 113.645 104.965 113.04 105.379 112.568C105.793 112.095 106.372 111.798 106.988 111.699C108.672 111.43 110.358 111.167 112.043 110.91C135.641 107.311 159.303 104.892 183.027 103.651Z" fill="black"/>
|
|
6
|
+
<path d="M125.839 136.816C143.039 135.693 160.316 135.768 177.669 137.041C178.909 137.132 180.149 137.229 181.389 137.332C181.998 137.384 182.593 137.621 183.048 138.047C183.504 138.474 183.782 139.049 183.821 139.66C183.859 140.27 183.657 140.876 183.26 141.358C182.862 141.841 182.302 142.153 181.705 142.283C180.488 142.547 179.271 142.804 178.053 143.055C161.006 146.573 143.882 148.893 126.682 150.015C121.768 150.336 116.797 149.777 111.77 148.337C110.513 147.977 109.253 147.563 107.989 147.093C107.453 146.891 106.933 146.609 106.537 146.197C106.141 145.786 105.901 145.28 105.867 144.746C105.833 144.212 106.007 143.679 106.348 143.219C106.688 142.76 107.168 142.413 107.674 142.142C108.867 141.512 110.064 140.937 111.265 140.417C116.067 138.337 120.925 137.136 125.839 136.816Z" fill="black"/>
|
|
7
|
+
</svg>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "Paper Camp",
|
|
3
|
+
"short_name": "Paper Camp",
|
|
4
|
+
"description": "Local-first, AI-native project management",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"display": "standalone",
|
|
7
|
+
"background_color": "#FDFCF8",
|
|
8
|
+
"theme_color": "#FDFCF8",
|
|
9
|
+
"icons": [
|
|
10
|
+
{ "src": "/img/paper-logo.svg", "type": "image/svg+xml", "sizes": "any" },
|
|
11
|
+
{ "src": "/img/paper-logo.png", "type": "image/png", "sizes": "300x300" }
|
|
12
|
+
]
|
|
13
|
+
}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -34,6 +34,57 @@ export interface ParseResult<T> {
|
|
|
34
34
|
entries: T[];
|
|
35
35
|
warnings: ParseWarning[];
|
|
36
36
|
}
|
|
37
|
+
/** A PR's reviewable/mergeable state, as surfaced by `gh pr list`. */
|
|
38
|
+
export type PrState = 'draft' | 'open' | 'closed' | 'merged';
|
|
39
|
+
/** GitHub's PR review decision, as surfaced by `gh pr list --json reviewDecision`. */
|
|
40
|
+
export type ReviewDecision = 'approved' | 'changes-requested' | 'review-required';
|
|
41
|
+
/**
|
|
42
|
+
* A single unresolved review comment/thread on a PR — the per-comment detail
|
|
43
|
+
* `PrInfo.unresolvedThreadCount` only counts. Fetched by the fix-review launch
|
|
44
|
+
* path (not `core/pr.ts`'s worklist resolver, which only needs the count) and
|
|
45
|
+
* fed to `buildFixReviewPrompt` in `prompts.ts`.
|
|
46
|
+
*/
|
|
47
|
+
export interface ReviewThread {
|
|
48
|
+
/** GraphQL node id — what `resolveReviewThread`/`replyToReviewThread` address. */
|
|
49
|
+
id: string;
|
|
50
|
+
/** File path the comment is anchored to; absent for a PR-level (not diff-anchored) comment. */
|
|
51
|
+
path?: string;
|
|
52
|
+
line?: number;
|
|
53
|
+
author?: string;
|
|
54
|
+
body: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* What a fix-review agent reports back, parsed from the JSON object its prompt
|
|
58
|
+
* requires as its final line. The agent no longer commits — a human does — so
|
|
59
|
+
* this carries the message it proposes plus its per-comment verdicts, which drive
|
|
60
|
+
* which PR threads get resolved (once the fix is pushed) and which get a reply
|
|
61
|
+
* explaining why they were left alone.
|
|
62
|
+
*/
|
|
63
|
+
export interface FixReviewResult {
|
|
64
|
+
commit: {
|
|
65
|
+
title: string;
|
|
66
|
+
message: string;
|
|
67
|
+
};
|
|
68
|
+
/** Thread ids the agent says its changes settle. */
|
|
69
|
+
addressed: string[];
|
|
70
|
+
/** Thread ids it deliberately left alone, each with the reason to post back. */
|
|
71
|
+
skipped: {
|
|
72
|
+
threadId: string;
|
|
73
|
+
why: string;
|
|
74
|
+
}[];
|
|
75
|
+
}
|
|
76
|
+
/** Live-resolved PR info for an entity's branch — see `core/pr.ts`. */
|
|
77
|
+
export interface PrInfo {
|
|
78
|
+
number: number;
|
|
79
|
+
url: string;
|
|
80
|
+
state: PrState;
|
|
81
|
+
/** Undefined when no review has been requested/decided, or when unresolved (offline, closed/merged PR). */
|
|
82
|
+
reviewDecision?: ReviewDecision;
|
|
83
|
+
/** Count of unresolved review threads. Only fetched for open/draft PRs; undefined when not fetched or unresolved. */
|
|
84
|
+
unresolvedThreadCount?: number;
|
|
85
|
+
/** Whether a comment or review landed after the PR's last commit — a proxy for "since the last agent pass" (a pass ends with a push). Only fetched for open/draft PRs. */
|
|
86
|
+
hasNewCommentsSincePush?: boolean;
|
|
87
|
+
}
|
|
37
88
|
export interface PlanEntry {
|
|
38
89
|
title: string;
|
|
39
90
|
status: PlanStatus;
|
|
@@ -50,6 +101,8 @@ export interface PlanEntry {
|
|
|
50
101
|
phases: PhaseItem[];
|
|
51
102
|
log?: LogEntry[];
|
|
52
103
|
clarifications?: LogEntry[];
|
|
104
|
+
/** Live-resolved PR for this entity's branch, when one exists — see `core/pr.ts`. */
|
|
105
|
+
pr?: PrInfo;
|
|
53
106
|
}
|
|
54
107
|
export interface DecisionEntry {
|
|
55
108
|
title: string;
|
|
@@ -95,7 +148,8 @@ export interface EntityEntry {
|
|
|
95
148
|
type?: EntityType;
|
|
96
149
|
/** "note" marks an entity that never grows phases. */
|
|
97
150
|
kind?: 'note';
|
|
98
|
-
|
|
151
|
+
/** Stored override, not the source of truth — see entityFrontmatterSchema. */
|
|
152
|
+
status?: EntityStatus;
|
|
99
153
|
agent?: AgentId;
|
|
100
154
|
created: string;
|
|
101
155
|
updated?: string;
|
|
@@ -111,9 +165,22 @@ export interface ProgressEntry {
|
|
|
111
165
|
date: string;
|
|
112
166
|
items: string[];
|
|
113
167
|
}
|
|
168
|
+
/**
|
|
169
|
+
* A single line in `papercamp/suggestions.md` — an agent's disposable "you
|
|
170
|
+
* might want to do X" hunch. No `id`, no `status`: it only becomes a real
|
|
171
|
+
* idea if a human promotes it (see IDEA-62).
|
|
172
|
+
*/
|
|
173
|
+
export interface SuggestionEntry {
|
|
174
|
+
date: string;
|
|
175
|
+
title: string;
|
|
176
|
+
description: string;
|
|
177
|
+
}
|
|
114
178
|
export interface EnvEntry {
|
|
115
179
|
key: string;
|
|
116
180
|
value: string;
|
|
181
|
+
/** Set on GET responses: the key exists in .env but its value is withheld
|
|
182
|
+
* (secrets are never sent to the client). Absent when writing. */
|
|
183
|
+
isSet?: boolean;
|
|
117
184
|
}
|
|
118
185
|
export interface AgentConfig {
|
|
119
186
|
agent: AgentId;
|
|
@@ -170,7 +237,7 @@ export interface GitStatusResponse {
|
|
|
170
237
|
}
|
|
171
238
|
export type BranchHygieneStatus = 'clean-on-main' | 'stale-merged' | 'stale-no-upstream' | 'dirty' | 'fine';
|
|
172
239
|
export type AgentTaskStatus = 'starting' | 'running' | 'stopping' | 'done' | 'error';
|
|
173
|
-
export type TaskKind = 'phase' | 'audit' | 'batch-reconcile' | 'run-all' | 'draft' | 'extend' | 'commit-suggest' | 'sync' | 'reconcile';
|
|
240
|
+
export type TaskKind = 'phase' | 'audit' | 'batch-reconcile' | 'run-all' | 'draft' | 'extend' | 'suggest' | 'commit-suggest' | 'overlap-check' | 'sync' | 'reconcile' | 'fix-review';
|
|
174
241
|
export interface AgentTaskState {
|
|
175
242
|
status: AgentTaskStatus;
|
|
176
243
|
taskKind: TaskKind;
|
|
@@ -180,6 +247,20 @@ export interface AgentTaskState {
|
|
|
180
247
|
ideaId?: string;
|
|
181
248
|
agentId: AgentId;
|
|
182
249
|
lines: string[];
|
|
250
|
+
/**
|
|
251
|
+
* fix-review only, once it has reported: the commit message the agent proposes
|
|
252
|
+
* for the work it left uncommitted. The commit form prefills from this — the
|
|
253
|
+
* agent knows the intent behind each fix, which a diff-based suggestion doesn't.
|
|
254
|
+
*/
|
|
255
|
+
suggestedCommit?: {
|
|
256
|
+
title: string;
|
|
257
|
+
message: string;
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
export interface OverlapVerdict {
|
|
261
|
+
verdict: 'existing' | 'extend' | 'new';
|
|
262
|
+
targetId: string | null;
|
|
263
|
+
reasoning: string;
|
|
183
264
|
}
|
|
184
265
|
export interface ReconcileQueueItem {
|
|
185
266
|
planId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE5F,eAAO,MAAM,aAAa,EAAE,UAAU,EAOrC,CAAC;AAEF,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,UAAU,CAAC;AAEtE,eAAO,MAAM,UAAU,EAAE,QAAQ,EAAiD,CAAC;AAEnF,eAAO,MAAM,SAAS,sCAAuC,CAAC;AAE9D,MAAM,MAAM,OAAO,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAGhD,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,YAAY,CAAC;AAEtD,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,UAAU,CAAC;AAEjD,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,QAAQ,CAAC;CACnB;AAED,0FAA0F;AAC1F,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,QAAQ,EAAE,YAAY,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/types/index.ts"],"sourcesContent":["export type PlanStatus = 'idea' | 'planned' | 'in-progress' | 'review' | 'done' | 'dropped';\n\nexport const PLAN_STATUSES: PlanStatus[] = [\n 'idea',\n 'planned',\n 'in-progress',\n 'review',\n 'done',\n 'dropped',\n];\n\nexport interface LogEntry {\n date: string;\n text: string;\n}\n\nexport type PlanKind = 'feat' | 'fix' | 'chore' | 'docs' | 'refactor';\n\nexport const PLAN_KINDS: PlanKind[] = ['feat', 'fix', 'chore', 'docs', 'refactor'];\n\nexport const AGENT_IDS = ['claude-code', 'opencode'] as const;\n\nexport type AgentId = (typeof AGENT_IDS)[number];\n\nexport const AGENT_LABELS: Record<AgentId, string> = {\n 'claude-code': 'Claude Code',\n opencode: 'OpenCode',\n};\n\nexport type DecisionStatus = 'decided' | 'superseded';\n\nexport type QuestionStatus = 'open' | 'resolved';\n\nexport interface PhaseItem {\n done: boolean;\n text: string;\n description?: string;\n source?: 'review';\n}\n\n/** Raw shape produced by the generic heading-block parser, before per-file validation. */\nexport interface RawEntry {\n title: string;\n fields: Record<string, string>;\n body: string;\n phases: PhaseItem[];\n log?: LogEntry[];\n clarifications?: LogEntry[];\n}\n\nexport interface ParseWarning {\n title: string;\n message: string;\n}\n\nexport interface ParseResult<T> {\n entries: T[];\n warnings: ParseWarning[];\n}\n\nexport interface PlanEntry {\n title: string;\n status: PlanStatus;\n kind?: PlanKind;\n id?: string;\n idea?: string;\n agent?: AgentId;\n created: string;\n updated?: string;\n audited?: string;\n auditedHash?: string;\n tags: string[];\n body: string;\n phases: PhaseItem[];\n log?: LogEntry[];\n clarifications?: LogEntry[];\n}\n\nexport interface DecisionEntry {\n title: string;\n date: string;\n status: DecisionStatus;\n supersededBy?: string;\n body: string;\n}\n\nexport interface OpenQuestionEntry {\n title: string;\n status: QuestionStatus;\n raised: string;\n resolvedBy?: string;\n blocks?: string;\n body: string;\n}\n\nexport type ConsistencyIssueKind =\n | 'dangling-resolved-by'\n | 'dangling-superseded-by'\n | 'blocked-plan-active';\n\nexport interface ConsistencyIssue {\n kind: ConsistencyIssueKind;\n section: 'decisions' | 'open-questions';\n title: string;\n message: string;\n planId?: string;\n}\n\nexport type IdeaKind = 'idea' | 'note';\n\nexport type IdeaStatus = 'open' | 'done' | 'dropped';\n\nexport interface IdeaEntry {\n id: string | null;\n title: string;\n body: string;\n kind?: IdeaKind;\n status?: IdeaStatus;\n log?: LogEntry[];\n}\n\n// ---------------------------------------------------------------------------\n// Unified entity (FEAT-42 phases 7+ — one file per entity: an \"idea\" for its\n// whole life, plan as an optional Phases section. Replaces PlanEntry/IdeaEntry\n// once the migration cutover lands.)\n// ---------------------------------------------------------------------------\n\n/** Work classification — same Conventional-Commits values as PlanKind; `kind` renamed to `type` in the unified schema. */\nexport type EntityType = PlanKind;\n\n/** Plan lifecycle plus the note-only `open`. Notes use open → done/dropped; everything else uses the PlanStatus track. */\nexport type EntityStatus = PlanStatus | 'open';\n\nexport interface EntityEntry {\n id: string;\n title: string;\n /** Absent until the entity is classified (usually when its plan is drafted). */\n type?: EntityType;\n /** \"note\" marks an entity that never grows phases. */\n kind?: 'note';\n status: EntityStatus;\n agent?: AgentId;\n created: string;\n updated?: string;\n audited?: string;\n auditedHash?: string;\n tags: string[];\n body: string;\n phases: PhaseItem[];\n log?: LogEntry[];\n clarifications?: LogEntry[];\n}\n\nexport interface ProgressEntry {\n date: string;\n items: string[];\n}\n\nexport interface EnvEntry {\n key: string;\n value: string;\n}\n\nexport interface AgentConfig {\n agent: AgentId;\n model?: string;\n effort?: string;\n}\n\n/** Model/effort passed to an adapter's buildArgs — the AgentConfig minus the agent id. */\nexport interface AgentRunOptions {\n model?: string;\n effort?: string;\n}\n\n/** Maps option names to a fixed value list (renders a Select) or null (free-text or hidden). */\nexport type AgentOptionsDescriptor = Record<string, string[] | null | undefined>;\n\nexport const AGENT_OPTIONS: Record<AgentId, AgentOptionsDescriptor> = {\n 'claude-code': {\n model: ['opus', 'sonnet', 'fable', 'haiku'],\n effort: ['low', 'medium', 'high', 'xhigh', 'max'],\n },\n opencode: {\n model: null,\n },\n};\n\nexport function coerceAgentConfig(v: unknown): AgentConfig {\n const toAgent = (a: unknown): AgentId =>\n AGENT_IDS.includes(a as AgentId) ? (a as AgentId) : 'claude-code';\n if (typeof v === 'string') return { agent: toAgent(v) };\n // Tolerate null/undefined and partial legacy entries — a missing key must not\n // throw (that would 500 the /api/config read this coercion exists to protect).\n const obj = (v ?? {}) as Record<string, unknown>;\n return {\n agent: toAgent(obj.agent),\n ...(typeof obj.model === 'string' && { model: obj.model }),\n ...(typeof obj.effort === 'string' && { effort: obj.effort }),\n };\n}\n\nexport interface DefaultAgentsMap {\n phase: AgentConfig;\n planDraft: AgentConfig;\n ideaExtend: AgentConfig;\n commitSuggest: AgentConfig;\n}\n\nexport const DEFAULT_AGENTS: DefaultAgentsMap = {\n phase: { agent: 'opencode' },\n planDraft: { agent: 'claude-code' },\n ideaExtend: { agent: 'claude-code' },\n commitSuggest: { agent: 'claude-code' },\n};\n\nexport interface PaperCampConfig {\n version: string;\n projectName: string;\n initializedAt: string;\n /** The unified-entity `idea` counter; the per-kind plan counters are legacy, present only in pre-migration configs. */\n nextId?: Partial<Record<PlanKind, number>> & { idea?: number };\n port?: number;\n defaultAgents?: DefaultAgentsMap;\n /** Off by default. When true, the PostToolUse hook logs new-file creations to progress.md. */\n autoLogNewFiles?: boolean;\n}\n\nexport type CheckStatus = 'stale' | 'running' | 'pass' | 'fail';\n\nexport interface CheckResult {\n status: CheckStatus;\n lastRun: string | null;\n output: string;\n}\n\nexport type CheckName = 'lint' | 'format' | 'test' | 'consistency';\n\nexport interface GitStatusEntry {\n path: string;\n status: string;\n staged: boolean;\n renameSource?: string;\n}\n\nexport interface GitStatusResponse {\n branch: string;\n entries: GitStatusEntry[];\n ahead: number;\n branchHygiene: BranchHygieneStatus;\n}\n\nexport type BranchHygieneStatus =\n | 'clean-on-main'\n | 'stale-merged'\n | 'stale-no-upstream'\n | 'dirty'\n | 'fine';\n\nexport type AgentTaskStatus = 'starting' | 'running' | 'stopping' | 'done' | 'error';\n\nexport type TaskKind =\n | 'phase'\n | 'audit'\n | 'batch-reconcile'\n | 'run-all'\n | 'draft'\n | 'extend'\n | 'commit-suggest'\n | 'sync'\n | 'reconcile';\n\nexport interface AgentTaskState {\n status: AgentTaskStatus;\n taskKind: TaskKind;\n planTitle: string;\n planId?: string;\n phaseIndex?: number;\n ideaId?: string;\n agentId: AgentId;\n lines: string[];\n}\n\n// A single entity's proposed rewrite from a batch reconcile sweep, held server-side\n// (see startBatchReconcile in agent.ts) and served via GET /api/agent/reconcile-queue\n// once the sweep's `before` snapshot for that entity is known to have changed.\nexport interface ReconcileQueueItem {\n planId: string;\n title: string;\n before: { body: string; phases: PhaseItem[] };\n}\n"],"names":["PLAN_STATUSES","PLAN_KINDS","AGENT_IDS","AGENT_LABELS","AGENT_OPTIONS","coerceAgentConfig","v","toAgent","a","obj","DEFAULT_AGENTS"],"mappings":"AAEO,MAAMA,IAA8B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GASaC,IAAyB,CAAC,QAAQ,OAAO,SAAS,QAAQ,UAAU,GAEpEC,IAAY,CAAC,eAAe,UAAU,GAItCC,IAAwC;AAAA,EACnD,eAAe;AAAA,EACf,UAAU;AACZ,GAuJaC,IAAyD;AAAA,EACpE,eAAe;AAAA,IACb,OAAO,CAAC,QAAQ,UAAU,SAAS,OAAO;AAAA,IAC1C,QAAQ,CAAC,OAAO,UAAU,QAAQ,SAAS,KAAK;AAAA,EAAA;AAAA,EAElD,UAAU;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAEO,SAASC,EAAkBC,GAAyB;AACzD,QAAMC,IAAU,CAACC,MACfN,EAAU,SAASM,CAAY,IAAKA,IAAgB;AACtD,MAAI,OAAOF,KAAM,SAAU,QAAO,EAAE,OAAOC,EAAQD,CAAC,EAAA;AAGpD,QAAMG,IAAOH,KAAK,CAAA;AAClB,SAAO;AAAA,IACL,OAAOC,EAAQE,EAAI,KAAK;AAAA,IACxB,GAAI,OAAOA,EAAI,SAAU,YAAY,EAAE,OAAOA,EAAI,MAAA;AAAA,IAClD,GAAI,OAAOA,EAAI,UAAW,YAAY,EAAE,QAAQA,EAAI,OAAA;AAAA,EAAO;AAE/D;AASO,MAAMC,IAAmC;AAAA,EAC9C,OAAO,EAAE,OAAO,WAAA;AAAA,EAChB,WAAW,EAAE,OAAO,cAAA;AAAA,EACpB,YAAY,EAAE,OAAO,cAAA;AAAA,EACrB,eAAe,EAAE,OAAO,cAAA;AAC1B;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/types/index.ts"],"sourcesContent":["export type PlanStatus = 'idea' | 'planned' | 'in-progress' | 'review' | 'done' | 'dropped';\n\nexport const PLAN_STATUSES: PlanStatus[] = [\n 'idea',\n 'planned',\n 'in-progress',\n 'review',\n 'done',\n 'dropped',\n];\n\nexport interface LogEntry {\n date: string;\n text: string;\n}\n\nexport type PlanKind = 'feat' | 'fix' | 'chore' | 'docs' | 'refactor';\n\nexport const PLAN_KINDS: PlanKind[] = ['feat', 'fix', 'chore', 'docs', 'refactor'];\n\nexport const AGENT_IDS = ['claude-code', 'opencode'] as const;\n\nexport type AgentId = (typeof AGENT_IDS)[number];\n\nexport const AGENT_LABELS: Record<AgentId, string> = {\n 'claude-code': 'Claude Code',\n opencode: 'OpenCode',\n};\n\nexport type DecisionStatus = 'decided' | 'superseded';\n\nexport type QuestionStatus = 'open' | 'resolved';\n\nexport interface PhaseItem {\n done: boolean;\n text: string;\n description?: string;\n source?: 'review';\n}\n\n/** Raw shape produced by the generic heading-block parser, before per-file validation. */\nexport interface RawEntry {\n title: string;\n fields: Record<string, string>;\n body: string;\n phases: PhaseItem[];\n log?: LogEntry[];\n clarifications?: LogEntry[];\n}\n\nexport interface ParseWarning {\n title: string;\n message: string;\n}\n\nexport interface ParseResult<T> {\n entries: T[];\n warnings: ParseWarning[];\n}\n\n/** A PR's reviewable/mergeable state, as surfaced by `gh pr list`. */\nexport type PrState = 'draft' | 'open' | 'closed' | 'merged';\n\n/** GitHub's PR review decision, as surfaced by `gh pr list --json reviewDecision`. */\nexport type ReviewDecision = 'approved' | 'changes-requested' | 'review-required';\n\n/**\n * A single unresolved review comment/thread on a PR — the per-comment detail\n * `PrInfo.unresolvedThreadCount` only counts. Fetched by the fix-review launch\n * path (not `core/pr.ts`'s worklist resolver, which only needs the count) and\n * fed to `buildFixReviewPrompt` in `prompts.ts`.\n */\nexport interface ReviewThread {\n /** GraphQL node id — what `resolveReviewThread`/`replyToReviewThread` address. */\n id: string;\n /** File path the comment is anchored to; absent for a PR-level (not diff-anchored) comment. */\n path?: string;\n line?: number;\n author?: string;\n body: string;\n}\n\n/**\n * What a fix-review agent reports back, parsed from the JSON object its prompt\n * requires as its final line. The agent no longer commits — a human does — so\n * this carries the message it proposes plus its per-comment verdicts, which drive\n * which PR threads get resolved (once the fix is pushed) and which get a reply\n * explaining why they were left alone.\n */\nexport interface FixReviewResult {\n commit: { title: string; message: string };\n /** Thread ids the agent says its changes settle. */\n addressed: string[];\n /** Thread ids it deliberately left alone, each with the reason to post back. */\n skipped: { threadId: string; why: string }[];\n}\n\n/** Live-resolved PR info for an entity's branch — see `core/pr.ts`. */\nexport interface PrInfo {\n number: number;\n url: string;\n state: PrState;\n /** Undefined when no review has been requested/decided, or when unresolved (offline, closed/merged PR). */\n reviewDecision?: ReviewDecision;\n /** Count of unresolved review threads. Only fetched for open/draft PRs; undefined when not fetched or unresolved. */\n unresolvedThreadCount?: number;\n /** Whether a comment or review landed after the PR's last commit — a proxy for \"since the last agent pass\" (a pass ends with a push). Only fetched for open/draft PRs. */\n hasNewCommentsSincePush?: boolean;\n}\n\nexport interface PlanEntry {\n title: string;\n status: PlanStatus;\n kind?: PlanKind;\n id?: string;\n idea?: string;\n agent?: AgentId;\n created: string;\n updated?: string;\n audited?: string;\n auditedHash?: string;\n tags: string[];\n body: string;\n phases: PhaseItem[];\n log?: LogEntry[];\n clarifications?: LogEntry[];\n /** Live-resolved PR for this entity's branch, when one exists — see `core/pr.ts`. */\n pr?: PrInfo;\n}\n\nexport interface DecisionEntry {\n title: string;\n date: string;\n status: DecisionStatus;\n supersededBy?: string;\n body: string;\n}\n\nexport interface OpenQuestionEntry {\n title: string;\n status: QuestionStatus;\n raised: string;\n resolvedBy?: string;\n blocks?: string;\n body: string;\n}\n\nexport type ConsistencyIssueKind =\n | 'dangling-resolved-by'\n | 'dangling-superseded-by'\n | 'blocked-plan-active';\n\nexport interface ConsistencyIssue {\n kind: ConsistencyIssueKind;\n section: 'decisions' | 'open-questions';\n title: string;\n message: string;\n planId?: string;\n}\n\nexport type IdeaKind = 'idea' | 'note';\n\nexport type IdeaStatus = 'open' | 'done' | 'dropped';\n\nexport interface IdeaEntry {\n id: string | null;\n title: string;\n body: string;\n kind?: IdeaKind;\n status?: IdeaStatus;\n log?: LogEntry[];\n}\n\n// ---------------------------------------------------------------------------\n// Unified entity (FEAT-42 phases 7+ — one file per entity: an \"idea\" for its\n// whole life, plan as an optional Phases section. Replaces PlanEntry/IdeaEntry\n// once the migration cutover lands.)\n// ---------------------------------------------------------------------------\n\n/** Work classification — same Conventional-Commits values as PlanKind; `kind` renamed to `type` in the unified schema. */\nexport type EntityType = PlanKind;\n\n/** Plan lifecycle plus the note-only `open`. Notes use open → done/dropped; everything else uses the PlanStatus track. */\nexport type EntityStatus = PlanStatus | 'open';\n\nexport interface EntityEntry {\n id: string;\n title: string;\n /** Absent until the entity is classified (usually when its plan is drafted). */\n type?: EntityType;\n /** \"note\" marks an entity that never grows phases. */\n kind?: 'note';\n /** Stored override, not the source of truth — see entityFrontmatterSchema. */\n status?: EntityStatus;\n agent?: AgentId;\n created: string;\n updated?: string;\n audited?: string;\n auditedHash?: string;\n tags: string[];\n body: string;\n phases: PhaseItem[];\n log?: LogEntry[];\n clarifications?: LogEntry[];\n}\n\nexport interface ProgressEntry {\n date: string;\n items: string[];\n}\n\n/**\n * A single line in `papercamp/suggestions.md` — an agent's disposable \"you\n * might want to do X\" hunch. No `id`, no `status`: it only becomes a real\n * idea if a human promotes it (see IDEA-62).\n */\nexport interface SuggestionEntry {\n date: string;\n title: string;\n description: string;\n}\n\nexport interface EnvEntry {\n key: string;\n value: string;\n /** Set on GET responses: the key exists in .env but its value is withheld\n * (secrets are never sent to the client). Absent when writing. */\n isSet?: boolean;\n}\n\nexport interface AgentConfig {\n agent: AgentId;\n model?: string;\n effort?: string;\n}\n\n/** Model/effort passed to an adapter's buildArgs — the AgentConfig minus the agent id. */\nexport interface AgentRunOptions {\n model?: string;\n effort?: string;\n}\n\n/** Maps option names to a fixed value list (renders a Select) or null (free-text or hidden). */\nexport type AgentOptionsDescriptor = Record<string, string[] | null | undefined>;\n\nexport const AGENT_OPTIONS: Record<AgentId, AgentOptionsDescriptor> = {\n 'claude-code': {\n model: ['opus', 'sonnet', 'fable', 'haiku'],\n effort: ['low', 'medium', 'high', 'xhigh', 'max'],\n },\n opencode: {\n model: null,\n },\n};\n\nexport function coerceAgentConfig(v: unknown): AgentConfig {\n const toAgent = (a: unknown): AgentId =>\n AGENT_IDS.includes(a as AgentId) ? (a as AgentId) : 'claude-code';\n if (typeof v === 'string') return { agent: toAgent(v) };\n // Tolerate null/undefined and partial legacy entries — a missing key must not\n // throw (that would 500 the /api/config read this coercion exists to protect).\n const obj = (v ?? {}) as Record<string, unknown>;\n return {\n agent: toAgent(obj.agent),\n ...(typeof obj.model === 'string' && { model: obj.model }),\n ...(typeof obj.effort === 'string' && { effort: obj.effort }),\n };\n}\n\nexport interface DefaultAgentsMap {\n phase: AgentConfig;\n planDraft: AgentConfig;\n ideaExtend: AgentConfig;\n commitSuggest: AgentConfig;\n}\n\nexport const DEFAULT_AGENTS: DefaultAgentsMap = {\n phase: { agent: 'opencode' },\n planDraft: { agent: 'claude-code' },\n ideaExtend: { agent: 'claude-code' },\n commitSuggest: { agent: 'claude-code' },\n};\n\nexport interface PaperCampConfig {\n version: string;\n projectName: string;\n initializedAt: string;\n /** The unified-entity `idea` counter; the per-kind plan counters are legacy, present only in pre-migration configs. */\n nextId?: Partial<Record<PlanKind, number>> & { idea?: number };\n port?: number;\n defaultAgents?: DefaultAgentsMap;\n /** Off by default. When true, the PostToolUse hook logs new-file creations to progress.md. */\n autoLogNewFiles?: boolean;\n}\n\nexport type CheckStatus = 'stale' | 'running' | 'pass' | 'fail';\n\nexport interface CheckResult {\n status: CheckStatus;\n lastRun: string | null;\n output: string;\n}\n\nexport type CheckName = 'lint' | 'format' | 'test' | 'consistency';\n\nexport interface GitStatusEntry {\n path: string;\n status: string;\n staged: boolean;\n renameSource?: string;\n}\n\nexport interface GitStatusResponse {\n branch: string;\n entries: GitStatusEntry[];\n ahead: number;\n branchHygiene: BranchHygieneStatus;\n}\n\nexport type BranchHygieneStatus =\n | 'clean-on-main'\n | 'stale-merged'\n | 'stale-no-upstream'\n | 'dirty'\n | 'fine';\n\nexport type AgentTaskStatus = 'starting' | 'running' | 'stopping' | 'done' | 'error';\n\nexport type TaskKind =\n | 'phase'\n | 'audit'\n | 'batch-reconcile'\n | 'run-all'\n | 'draft'\n | 'extend'\n | 'suggest'\n | 'commit-suggest'\n | 'overlap-check'\n | 'sync'\n | 'reconcile'\n | 'fix-review';\n\nexport interface AgentTaskState {\n status: AgentTaskStatus;\n taskKind: TaskKind;\n planTitle: string;\n planId?: string;\n phaseIndex?: number;\n ideaId?: string;\n agentId: AgentId;\n lines: string[];\n /**\n * fix-review only, once it has reported: the commit message the agent proposes\n * for the work it left uncommitted. The commit form prefills from this — the\n * agent knows the intent behind each fix, which a diff-based suggestion doesn't.\n */\n suggestedCommit?: { title: string; message: string };\n}\n\n// The AI Check-overlap action's triage result (IDEA-44 Tier 2): does the typed\n// text belong inside an existing idea, extend one, or is it genuinely new?\nexport interface OverlapVerdict {\n verdict: 'existing' | 'extend' | 'new';\n targetId: string | null;\n reasoning: string;\n}\n\n// A single entity's proposed rewrite from a batch reconcile sweep, held server-side\n// (see startBatchReconcile in agent.ts) and served via GET /api/agent/reconcile-queue\n// once the sweep's `before` snapshot for that entity is known to have changed.\nexport interface ReconcileQueueItem {\n planId: string;\n title: string;\n before: { body: string; phases: PhaseItem[] };\n}\n"],"names":["PLAN_STATUSES","PLAN_KINDS","AGENT_IDS","AGENT_LABELS","AGENT_OPTIONS","coerceAgentConfig","v","toAgent","a","obj","DEFAULT_AGENTS"],"mappings":"AAEO,MAAMA,IAA8B;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GASaC,IAAyB,CAAC,QAAQ,OAAO,SAAS,QAAQ,UAAU,GAEpEC,IAAY,CAAC,eAAe,UAAU,GAItCC,IAAwC;AAAA,EACnD,eAAe;AAAA,EACf,UAAU;AACZ,GA0NaC,IAAyD;AAAA,EACpE,eAAe;AAAA,IACb,OAAO,CAAC,QAAQ,UAAU,SAAS,OAAO;AAAA,IAC1C,QAAQ,CAAC,OAAO,UAAU,QAAQ,SAAS,KAAK;AAAA,EAAA;AAAA,EAElD,UAAU;AAAA,IACR,OAAO;AAAA,EAAA;AAEX;AAEO,SAASC,EAAkBC,GAAyB;AACzD,QAAMC,IAAU,CAACC,MACfN,EAAU,SAASM,CAAY,IAAKA,IAAgB;AACtD,MAAI,OAAOF,KAAM,SAAU,QAAO,EAAE,OAAOC,EAAQD,CAAC,EAAA;AAGpD,QAAMG,IAAOH,KAAK,CAAA;AAClB,SAAO;AAAA,IACL,OAAOC,EAAQE,EAAI,KAAK;AAAA,IACxB,GAAI,OAAOA,EAAI,SAAU,YAAY,EAAE,OAAOA,EAAI,MAAA;AAAA,IAClD,GAAI,OAAOA,EAAI,UAAW,YAAY,EAAE,QAAQA,EAAI,OAAA;AAAA,EAAO;AAE/D;AASO,MAAMC,IAAmC;AAAA,EAC9C,OAAO,EAAE,OAAO,WAAA;AAAA,EAChB,WAAW,EAAE,OAAO,cAAA;AAAA,EACpB,YAAY,EAAE,OAAO,cAAA;AAAA,EACrB,eAAe,EAAE,OAAO,cAAA;AAC1B;"}
|
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dendelion/paper-camp",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.8.0",
|
|
4
4
|
"description": "Local-first, AI-native project management with retro aesthetics",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"packageManager": "pnpm@10.12.1",
|
|
7
|
+
"pnpm": {
|
|
8
|
+
"overrides": {
|
|
9
|
+
"fast-uri": ">=3.1.2"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
7
12
|
"bin": {
|
|
8
13
|
"paper-camp": "./dist/cli/index.js"
|
|
9
14
|
},
|
|
@@ -54,7 +59,7 @@
|
|
|
54
59
|
"react-dom": "^18.0.0"
|
|
55
60
|
},
|
|
56
61
|
"dependencies": {
|
|
57
|
-
"@dendelion/paper-ui": "0.7.
|
|
62
|
+
"@dendelion/paper-ui": "0.7.5",
|
|
58
63
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
59
64
|
"@tanstack/react-router": "^1.58.3",
|
|
60
65
|
"commander": "^12.0.0",
|