harnery 0.5.0 → 0.7.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.
Files changed (176) hide show
  1. package/README.md +16 -6
  2. package/dist/commander.d.ts +29 -0
  3. package/dist/commander.d.ts.map +1 -1
  4. package/dist/commander.js +4 -0
  5. package/dist/commands/agents.d.ts.map +1 -1
  6. package/dist/commands/agents.js +94 -33
  7. package/dist/commands/browse-ai.js +1 -1
  8. package/dist/commands/browse.d.ts.map +1 -1
  9. package/dist/commands/browse.js +41 -9
  10. package/dist/commands/cookies.js +1 -1
  11. package/dist/commands/decision.d.ts +4 -0
  12. package/dist/commands/decision.d.ts.map +1 -0
  13. package/dist/commands/decision.js +354 -0
  14. package/dist/commands/deinit.d.ts.map +1 -1
  15. package/dist/commands/deinit.js +4 -0
  16. package/dist/commands/devtools.d.ts +4 -0
  17. package/dist/commands/devtools.d.ts.map +1 -0
  18. package/dist/commands/devtools.js +239 -0
  19. package/dist/commands/docs.d.ts.map +1 -1
  20. package/dist/commands/docs.js +74 -2
  21. package/dist/commands/doctor.js +12 -4
  22. package/dist/commands/env.d.ts.map +1 -1
  23. package/dist/commands/env.js +3 -63
  24. package/dist/commands/fetch.js +1 -1
  25. package/dist/commands/init.d.ts +1 -0
  26. package/dist/commands/init.d.ts.map +1 -1
  27. package/dist/commands/init.js +54 -14
  28. package/dist/commands/scratch.js +1 -1
  29. package/dist/commands/tunnel.d.ts.map +1 -1
  30. package/dist/commands/tunnel.js +273 -62
  31. package/dist/commands/web-fetch.js +1 -1
  32. package/dist/core/agents/coord-client.d.ts.map +1 -1
  33. package/dist/core/agents/coord-client.js +32 -8
  34. package/dist/core/agents/events/consume.d.ts +25 -2
  35. package/dist/core/agents/events/consume.d.ts.map +1 -1
  36. package/dist/core/agents/events/consume.js +55 -7
  37. package/dist/core/agents/events/emit.d.ts +2 -1
  38. package/dist/core/agents/events/emit.d.ts.map +1 -1
  39. package/dist/core/agents/events/emit.js +6 -1
  40. package/dist/core/agents/rules/claim-conflict.d.ts.map +1 -1
  41. package/dist/core/agents/rules/claim-conflict.js +16 -5
  42. package/dist/core/agents/state/scratch.d.ts +1 -1
  43. package/dist/core/agents/state/scratch.js +2 -2
  44. package/dist/core/config.d.ts +10 -0
  45. package/dist/core/config.d.ts.map +1 -1
  46. package/dist/core/config.js +13 -0
  47. package/dist/core/hooks/cli.js +3 -3
  48. package/dist/core/hooks/effects/index.d.ts +11 -7
  49. package/dist/core/hooks/effects/index.d.ts.map +1 -1
  50. package/dist/core/hooks/effects/index.js +15 -17
  51. package/dist/core/hooks/events/emit.d.ts.map +1 -1
  52. package/dist/core/hooks/events/emit.js +4 -0
  53. package/dist/core/hooks/events/rotate.d.ts +43 -0
  54. package/dist/core/hooks/events/rotate.d.ts.map +1 -0
  55. package/dist/core/hooks/events/rotate.js +142 -0
  56. package/dist/core/hooks/harness/events.d.ts +11 -1
  57. package/dist/core/hooks/harness/events.d.ts.map +1 -1
  58. package/dist/core/hooks/harness/events.js +22 -3
  59. package/dist/core/hooks/harness/wiring.d.ts +8 -0
  60. package/dist/core/hooks/harness/wiring.d.ts.map +1 -1
  61. package/dist/core/hooks/harness/wiring.js +34 -5
  62. package/dist/core/scratch/index.d.ts.map +1 -0
  63. package/dist/{lib → core}/scratch/index.js +2 -2
  64. package/dist/lib/agent-browser/client.js +1 -1
  65. package/dist/lib/browser/client.d.ts +14 -0
  66. package/dist/lib/browser/client.d.ts.map +1 -1
  67. package/dist/lib/browser/client.js +20 -0
  68. package/dist/lib/browser/index.d.ts +1 -0
  69. package/dist/lib/browser/index.d.ts.map +1 -1
  70. package/dist/lib/browser/runts.d.ts +44 -0
  71. package/dist/lib/browser/runts.d.ts.map +1 -0
  72. package/dist/lib/browser/runts.js +193 -0
  73. package/dist/lib/completion/walk.js +1 -1
  74. package/dist/lib/cookies/client.d.ts +1 -1
  75. package/dist/lib/cookies/client.d.ts.map +1 -1
  76. package/dist/lib/cookies/client.js +1 -1
  77. package/dist/lib/decision/index.d.ts +212 -0
  78. package/dist/lib/decision/index.d.ts.map +1 -0
  79. package/dist/lib/decision/index.js +523 -0
  80. package/dist/lib/devtools.d.ts +178 -0
  81. package/dist/lib/devtools.d.ts.map +1 -0
  82. package/dist/lib/devtools.js +1328 -0
  83. package/dist/lib/docs-frontmatter-migrate.d.ts +33 -0
  84. package/dist/lib/docs-frontmatter-migrate.d.ts.map +1 -0
  85. package/dist/lib/docs-frontmatter-migrate.js +364 -0
  86. package/dist/lib/docs-frontmatter.d.ts +33 -0
  87. package/dist/lib/docs-frontmatter.d.ts.map +1 -0
  88. package/dist/lib/docs-frontmatter.js +130 -0
  89. package/dist/lib/docs-index.d.ts +1 -0
  90. package/dist/lib/docs-index.d.ts.map +1 -1
  91. package/dist/lib/docs-index.js +4 -5
  92. package/dist/lib/docs-lint.d.ts +3 -0
  93. package/dist/lib/docs-lint.d.ts.map +1 -1
  94. package/dist/lib/docs-lint.js +67 -12
  95. package/dist/lib/docs-meta.d.ts +14 -0
  96. package/dist/lib/docs-meta.d.ts.map +1 -0
  97. package/dist/lib/docs-meta.js +34 -0
  98. package/dist/lib/docs-sweep.d.ts +12 -0
  99. package/dist/lib/docs-sweep.d.ts.map +1 -1
  100. package/dist/lib/docs-sweep.js +98 -103
  101. package/dist/lib/format.js +2 -2
  102. package/dist/lib/http/index.d.ts +1 -0
  103. package/dist/lib/http/index.d.ts.map +1 -1
  104. package/dist/lib/http/index.js +1 -0
  105. package/dist/lib/http/request.d.ts +77 -0
  106. package/dist/lib/http/request.d.ts.map +1 -0
  107. package/dist/lib/http/request.js +105 -0
  108. package/dist/lib/instructions/apply.d.ts +63 -0
  109. package/dist/lib/instructions/apply.d.ts.map +1 -0
  110. package/dist/lib/instructions/apply.js +255 -0
  111. package/dist/lib/instructions/splice.d.ts +73 -0
  112. package/dist/lib/instructions/splice.d.ts.map +1 -0
  113. package/dist/lib/instructions/splice.js +118 -0
  114. package/dist/lib/instructions/templates.d.ts +45 -0
  115. package/dist/lib/instructions/templates.d.ts.map +1 -0
  116. package/dist/lib/instructions/templates.js +258 -0
  117. package/dist/lib/tunnel/gate.d.ts +1 -0
  118. package/dist/lib/tunnel/gate.d.ts.map +1 -1
  119. package/dist/lib/tunnel/gate.js +15 -10
  120. package/dist/lib/tunnel/state.d.ts +11 -1
  121. package/dist/lib/tunnel/state.d.ts.map +1 -1
  122. package/dist/lib/tunnel/state.js +8 -3
  123. package/package.json +9 -6
  124. package/src/commander.ts +35 -0
  125. package/src/commands/agents.ts +97 -29
  126. package/src/commands/browse-ai.ts +1 -1
  127. package/src/commands/browse.ts +63 -8
  128. package/src/commands/cookies.ts +1 -1
  129. package/src/commands/decision.ts +438 -0
  130. package/src/commands/deinit.ts +5 -0
  131. package/src/commands/devtools.ts +284 -0
  132. package/src/commands/docs.ts +86 -2
  133. package/src/commands/doctor.ts +13 -4
  134. package/src/commands/env.ts +11 -77
  135. package/src/commands/fetch.ts +1 -1
  136. package/src/commands/init.ts +66 -15
  137. package/src/commands/scratch.ts +1 -1
  138. package/src/commands/tunnel.ts +316 -65
  139. package/src/commands/web-fetch.ts +1 -1
  140. package/src/core/agents/coord-client.ts +34 -7
  141. package/src/core/agents/events/consume.ts +65 -7
  142. package/src/core/agents/events/emit.ts +7 -1
  143. package/src/core/agents/rules/claim-conflict.ts +17 -6
  144. package/src/core/agents/state/scratch.ts +2 -2
  145. package/src/core/config.ts +15 -1
  146. package/src/core/hooks/cli.ts +3 -3
  147. package/src/core/hooks/effects/index.ts +23 -16
  148. package/src/core/hooks/events/emit.ts +5 -0
  149. package/src/core/hooks/events/rotate.ts +151 -0
  150. package/src/core/hooks/harness/events.ts +30 -3
  151. package/src/core/hooks/harness/wiring.ts +46 -5
  152. package/src/{lib → core}/scratch/index.ts +2 -2
  153. package/src/lib/agent-browser/client.ts +1 -1
  154. package/src/lib/browser/client.ts +28 -0
  155. package/src/lib/browser/index.ts +4 -0
  156. package/src/lib/browser/runts.ts +218 -0
  157. package/src/lib/completion/walk.ts +1 -1
  158. package/src/lib/cookies/client.ts +2 -2
  159. package/src/lib/decision/index.ts +685 -0
  160. package/src/lib/devtools.ts +1653 -0
  161. package/src/lib/docs-frontmatter-migrate.ts +427 -0
  162. package/src/lib/docs-frontmatter.ts +151 -0
  163. package/src/lib/docs-index.ts +4 -5
  164. package/src/lib/docs-lint.ts +61 -11
  165. package/src/lib/docs-meta.ts +44 -0
  166. package/src/lib/docs-sweep.ts +104 -102
  167. package/src/lib/format.ts +2 -2
  168. package/src/lib/http/index.ts +1 -0
  169. package/src/lib/http/request.ts +154 -0
  170. package/src/lib/instructions/apply.ts +318 -0
  171. package/src/lib/instructions/splice.ts +148 -0
  172. package/src/lib/instructions/templates.ts +295 -0
  173. package/src/lib/tunnel/gate.ts +15 -10
  174. package/src/lib/tunnel/state.ts +19 -4
  175. package/dist/lib/scratch/index.d.ts.map +0 -1
  176. /package/dist/{lib → core}/scratch/index.d.ts +0 -0
@@ -0,0 +1,212 @@
1
+ /**
2
+ * Decision docket: a persistent queue of decisions an agent would otherwise
3
+ * route to a human, plus the lifecycle that carries each one from filing to a
4
+ * reviewed, graduated resolution.
5
+ *
6
+ * State layout (mirrors councils):
7
+ * - `.harnery/decisions/<id>.json` — one manifest per decision
8
+ * - `.harnery/decisions/<id>/` — long-form bodies (brief, options,
9
+ * evidence write-up) as markdown
10
+ * - `.harnery/decisions/archive/` — graduated / terminal decisions move here
11
+ *
12
+ * This module is the engine only. It stores `tier` (0/1/2) and `stakes` as
13
+ * opaque typed fields; what those *mean* — which decisions belong to which
14
+ * tier — is host policy, applied by the filing agent, never encoded here. That
15
+ * keeps the docket generic across host projects.
16
+ *
17
+ * Every function takes `coordRoot` explicitly (the council pattern) so the
18
+ * state machine is trivially testable against a tmpdir. The command layer
19
+ * resolves the root once via `monorepoRoot()` and threads it down.
20
+ *
21
+ * Concurrency: one file per decision (no shared index to contend on) + atomic
22
+ * temp→rename writes. `claim` is last-writer-wins — deliberating the same
23
+ * decision twice wastes tokens, not correctness.
24
+ */
25
+ export declare const DECISION_SCHEMA_VERSION: 1;
26
+ /** Tier of human-involvement. Meaning is host policy; the engine only stores it. */
27
+ export declare const DECISION_TIERS: readonly [0, 1, 2];
28
+ export type DecisionTier = (typeof DECISION_TIERS)[number];
29
+ export declare const DECISION_STAKES: readonly ["small", "medium", "high"];
30
+ export type DecisionStakes = (typeof DECISION_STAKES)[number];
31
+ export declare const DECISION_STATUSES: readonly ["filed", "triaged", "deliberating", "resolved", "enacted", "reviewed", "archived", "superseded", "wontfix"];
32
+ export type DecisionStatus = (typeof DECISION_STATUSES)[number];
33
+ export declare const REVIEW_VERDICTS: readonly ["ratified", "overridden", "wrong-tier-high", "wrong-tier-low"];
34
+ export type ReviewVerdict = (typeof REVIEW_VERDICTS)[number];
35
+ export declare const TERMINAL_STATUSES: readonly DecisionStatus[];
36
+ /**
37
+ * Legal status transitions. `superseded` is reachable from any non-terminal
38
+ * state (a decision can be obsoleted at any point); `wontfix` closes an
39
+ * un-deliberated decision. `deliberating → triaged` allows the sweeper to
40
+ * re-triage a decision's tier on first touch (the self-triage safeguard).
41
+ */
42
+ export declare const LEGAL_TRANSITIONS: Record<DecisionStatus, readonly DecisionStatus[]>;
43
+ export interface DecisionResolution {
44
+ recommendation: string;
45
+ confidence?: string;
46
+ reversal_cost?: string;
47
+ /** What would make this resolution wrong (the pre-mortem). */
48
+ wrong_if?: string;
49
+ /** When this should be revisited (a trigger, not a date). */
50
+ revisit_when?: string;
51
+ /** Citations: queries run, files read, costs computed. Required (≥1). */
52
+ evidence: string[];
53
+ resolved_by: string;
54
+ resolved_at: string;
55
+ }
56
+ export interface DecisionReview {
57
+ verdict: ReviewVerdict;
58
+ note?: string;
59
+ reviewed_at: string;
60
+ }
61
+ export interface DecisionManifest {
62
+ schema_version: typeof DECISION_SCHEMA_VERSION;
63
+ decision_id: string;
64
+ status: DecisionStatus;
65
+ /** Provisional at file time; the sweeper may re-check on claim. */
66
+ tier: DecisionTier;
67
+ stakes: DecisionStakes;
68
+ question: string;
69
+ context?: string;
70
+ /** What the filer proceeded with under always-proceed (tier 0/1), or null. */
71
+ default_taken?: string | null;
72
+ /** Agent name (e.g. "agent-Quill"), for display. */
73
+ filed_by?: string;
74
+ /** Filer instance_id. */
75
+ filed_by_id?: string;
76
+ filed_at: string;
77
+ /** Deliberator (agent instance_id or a sweeper session), or null. */
78
+ claimed_by?: string | null;
79
+ /** Set when escalated to a council. */
80
+ council_id?: string | null;
81
+ resolution?: DecisionResolution | null;
82
+ review?: DecisionReview | null;
83
+ /** Where the resolved output graduated (e.g. "docs/decisions.md#…"), or null. */
84
+ graduated_to?: string | null;
85
+ /** Set when superseded by another decision. */
86
+ superseded_by?: string | null;
87
+ /** Reason recorded on wontfix. */
88
+ wontfix_reason?: string | null;
89
+ updated_at?: string;
90
+ [extra: string]: unknown;
91
+ }
92
+ export interface DecisionOpResult {
93
+ ok: boolean;
94
+ reason?: string;
95
+ manifest?: DecisionManifest;
96
+ }
97
+ export declare function isTier(n: unknown): n is DecisionTier;
98
+ export declare function isStakes(s: unknown): s is DecisionStakes;
99
+ export declare function isStatus(s: unknown): s is DecisionStatus;
100
+ export declare function isVerdict(v: unknown): v is ReviewVerdict;
101
+ export declare function isTerminal(status: DecisionStatus): boolean;
102
+ export declare function canTransition(from: DecisionStatus, to: DecisionStatus): boolean;
103
+ export declare function decisionsDir(coordRoot: string): string;
104
+ export declare function archiveDir(coordRoot: string): string;
105
+ export declare function manifestPath(coordRoot: string, id: string): string;
106
+ export declare function archivedManifestPath(coordRoot: string, id: string): string;
107
+ export declare function decisionBodyDir(coordRoot: string, id: string): string;
108
+ /**
109
+ * Kebab-case slug from question text: first 5 words, lowercased,
110
+ * non-alphanumerics stripped. Local (not imported from council) so the module
111
+ * stays standalone.
112
+ */
113
+ export declare function deriveSlug(question: string): string;
114
+ /**
115
+ * Build a decision_id: `<slug>-<YYYY-MM-DD>-<4hex>`. The hex suffix is
116
+ * crypto-random (not a hash of the question) so two decisions sharing a
117
+ * slug + date don't collide.
118
+ */
119
+ export declare function buildDecisionId(question: string, now?: Date): string;
120
+ /**
121
+ * Read a manifest by id, checking the active dir then the archive. Returns null
122
+ * if absent or unparseable. Throws on an unsupported schema_version (fail loud
123
+ * on a real-but-incompatible manifest, the way councils do).
124
+ */
125
+ export declare function readManifest(coordRoot: string, id: string): DecisionManifest | null;
126
+ export declare function writeManifest(coordRoot: string, manifest: DecisionManifest): void;
127
+ export interface FileDecisionInput {
128
+ question: string;
129
+ tier: DecisionTier;
130
+ stakes: DecisionStakes;
131
+ context?: string;
132
+ defaultTaken?: string;
133
+ filedBy?: string;
134
+ filedById?: string;
135
+ /** Long-form brief written to `<id>/brief.md`. */
136
+ brief?: string;
137
+ now?: Date;
138
+ }
139
+ export declare function fileDecision(coordRoot: string, input: FileDecisionInput): DecisionOpResult;
140
+ export declare function triageDecision(coordRoot: string, id: string, opts: {
141
+ tier?: DecisionTier;
142
+ stakes?: DecisionStakes;
143
+ }): DecisionOpResult;
144
+ export declare function claimDecision(coordRoot: string, id: string, owner: string): DecisionOpResult;
145
+ export declare function escalateToCouncil(coordRoot: string, id: string, councilId: string): DecisionOpResult;
146
+ /**
147
+ * Resolve a decision. Evidence is required (≥1 citation): a resolution with no
148
+ * cited evidence is structurally incomplete and bounced here — the same guard
149
+ * the sweeper enforces.
150
+ */
151
+ export declare function resolveDecision(coordRoot: string, id: string, resolution: Omit<DecisionResolution, "resolved_at"> & {
152
+ resolved_at?: string;
153
+ }): DecisionOpResult;
154
+ export declare function enactDecision(coordRoot: string, id: string): DecisionOpResult;
155
+ export declare function reviewDecision(coordRoot: string, id: string, opts: {
156
+ verdict: ReviewVerdict;
157
+ note?: string;
158
+ }): DecisionOpResult;
159
+ export declare function supersedeDecision(coordRoot: string, id: string, bySupersedingId?: string): DecisionOpResult;
160
+ export declare function wontfixDecision(coordRoot: string, id: string, reason?: string): DecisionOpResult;
161
+ /**
162
+ * Archive a decision (terminal). Records where its output graduated, then moves
163
+ * manifest + body dir into `archive/`. Idempotent-ish: safe to re-run.
164
+ */
165
+ export declare function archiveDecision(coordRoot: string, id: string, graduatedTo?: string): DecisionOpResult;
166
+ /**
167
+ * Reopen an archived decision back to `reviewed` — the inverse of `archive`,
168
+ * and the one sanctioned way out of the (otherwise terminal) archived state.
169
+ * Since `archived` has no legal outgoing transition, this deliberately bypasses
170
+ * the `transition` guard, the same way `archive` does its file moves outside it.
171
+ * Moves the manifest + body dir back from `archive/` into the active dir and
172
+ * clears `graduated_to` (a re-archive sets it fresh). Only `archived` decisions
173
+ * reopen; `superseded`/`wontfix` stay terminal.
174
+ *
175
+ * Ordering is write-active-then-remove-archived so an interrupted call leaves
176
+ * the decision reopened (active copy wins in `readManifest`) rather than lost.
177
+ */
178
+ export declare function reopenDecision(coordRoot: string, id: string): DecisionOpResult;
179
+ export interface ListFilter {
180
+ status?: DecisionStatus;
181
+ tier?: DecisionTier;
182
+ stakes?: DecisionStakes;
183
+ /** Only non-terminal decisions (the live queue). */
184
+ openOnly?: boolean;
185
+ /** Include the archive dir in the scan (default: active only). */
186
+ includeArchived?: boolean;
187
+ }
188
+ export declare function listDecisions(coordRoot: string, filter?: ListFilter): DecisionManifest[];
189
+ export interface DecisionDetail {
190
+ manifest: DecisionManifest;
191
+ bodies: {
192
+ name: string;
193
+ content: string;
194
+ }[];
195
+ archived: boolean;
196
+ }
197
+ export declare function showDecision(coordRoot: string, id: string): DecisionDetail | null;
198
+ export interface SearchHit {
199
+ manifest: DecisionManifest;
200
+ /** A short surrounding snippet of the first match. */
201
+ snippet: string;
202
+ /** Where the match landed. */
203
+ where: "question" | "context" | "resolution" | "body";
204
+ }
205
+ /**
206
+ * Case-insensitive substring search over manifests + bodies. Deliberately
207
+ * dumb: precedent recall depends on the host's decision skill running this before
208
+ * filing, not on ranking sophistication. Includes the archive (precedent
209
+ * lives there).
210
+ */
211
+ export declare function searchDecisions(coordRoot: string, query: string): SearchHit[];
212
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/decision/index.ts"],"names":[],"mappings":"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"}