@buildaharness/aielia 0.3.9 → 0.3.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/_memory-core-generated.d.ts +6 -0
- package/dist/assistant.d.ts +11 -0
- package/dist/{bin-CCwDFxDe.js → bin-Cz3FY6Ew.js} +30 -11
- package/dist/bin-Cz3FY6Ew.js.map +1 -0
- package/dist/claude-cli-llm-client.d.ts +2 -0
- package/dist/claude-cli-prompt.d.ts +7 -0
- package/dist/cli.js +1 -1
- package/dist/fact-repository.contract.d.ts +2 -0
- package/dist/fact-repository.d.ts +44 -0
- package/dist/file-tools-mcp-server.mjs +29 -0
- package/dist/harness-bridge.d.ts +5 -5
- package/dist/html-to-markdown.d.ts +11 -0
- package/dist/index.d.ts +82 -2
- package/dist/index.js +4975 -173
- package/dist/index.js.map +1 -1
- package/dist/layer-settings.d.ts +16 -3
- package/dist/memory-events.d.ts +177 -0
- package/dist/memory-service.d.ts +15 -0
- package/dist/model-pricing.d.ts +3 -0
- package/dist/{provider-setup-Cy9dwqrd.js → provider-setup-DG8iYm_F.js} +5756 -4787
- package/dist/provider-setup-DG8iYm_F.js.map +1 -0
- package/dist/scripted-llm-client.d.ts +1 -1
- package/dist/{tui-app-Dt72u8vZ.js → tui-app-oWbIUcBW.js} +3 -3
- package/dist/{tui-app-Dt72u8vZ.js.map → tui-app-oWbIUcBW.js.map} +1 -1
- package/dist/turn-abort.d.ts +5 -0
- package/dist/version.d.ts +1 -1
- package/dist/web-fetch-core.d.ts +0 -14
- package/dist/writer/article-autosave.d.ts +12 -0
- package/dist/writer/article-change-summary.d.ts +28 -0
- package/dist/writer/article-claims.d.ts +49 -0
- package/dist/writer/article-comments.d.ts +20 -0
- package/dist/writer/article-consistency.d.ts +27 -0
- package/dist/writer/article-decorations.d.ts +23 -0
- package/dist/writer/article-dependencies.d.ts +44 -0
- package/dist/writer/article-draft.d.ts +23 -0
- package/dist/writer/article-edit-outline.d.ts +16 -0
- package/dist/writer/article-edit-suggest.d.ts +30 -0
- package/dist/writer/article-folder.d.ts +29 -0
- package/dist/writer/article-history.d.ts +73 -0
- package/dist/writer/article-ideas.d.ts +34 -0
- package/dist/writer/article-issues.d.ts +47 -0
- package/dist/writer/article-marks.d.ts +25 -0
- package/dist/writer/article-memory-store.d.ts +3 -0
- package/dist/writer/article-model.d.ts +1337 -0
- package/dist/writer/article-outline.d.ts +43 -0
- package/dist/writer/article-resolver.d.ts +55 -0
- package/dist/writer/article-revisions.d.ts +30 -0
- package/dist/writer/article-rules.d.ts +60 -0
- package/dist/writer/article-sections.d.ts +26 -0
- package/dist/writer/article-selection.d.ts +26 -0
- package/dist/writer/article-service.d.ts +542 -0
- package/dist/writer/article-source-links.d.ts +42 -0
- package/dist/writer/article-sources.d.ts +82 -0
- package/dist/writer/article-style-derive.d.ts +26 -0
- package/dist/writer/article-style.d.ts +31 -0
- package/dist/writer/article-suggestions.d.ts +33 -0
- package/dist/writer/article-support.d.ts +33 -0
- package/dist/writer/article-verify.d.ts +42 -0
- package/dist/writer/local-folder.d.ts +49 -0
- package/dist/writer/model-failure-hint.d.ts +7 -0
- package/dist/writer/repo-reader.d.ts +29 -0
- package/dist/writer/repo-search.d.ts +33 -0
- package/dist/writer/repo-verify-loop.d.ts +61 -0
- package/dist/writer/text-tool-calls.d.ts +11 -0
- package/dist/writer/work-progress.d.ts +51 -0
- package/dist/writer/write-activity.d.ts +61 -0
- package/dist/writer/write-models.d.ts +12 -0
- package/dist/writer/write-parameters.d.ts +31 -0
- package/dist/writer/write-permissions.d.ts +89 -0
- package/dist/writer/write-spend.d.ts +16 -0
- package/dist/writer/writer-chat-capture.d.ts +25 -0
- package/dist/writer/writer-chat-history.d.ts +17 -0
- package/dist/writer/writer-chat-state.d.ts +358 -0
- package/dist/writer/writer-chat-turn.d.ts +52 -0
- package/dist/writer/writer-intent.d.ts +20 -0
- package/package.json +3 -3
- package/dist/bin-CCwDFxDe.js.map +0 -1
- package/dist/provider-setup-Cy9dwqrd.js.map +0 -1
|
@@ -87,6 +87,8 @@ export interface ClaudeCliLLMClientOptions {
|
|
|
87
87
|
* turn was free" without that context.
|
|
88
88
|
*/
|
|
89
89
|
export declare class ClaudeCliLLMClient implements ILLMClient {
|
|
90
|
+
/** Runs its own tool loop inside `claude -p`; it cannot return tool calls to a caller's loop, so those callers use text tool calls (see writer/text-tool-calls.ts). */
|
|
91
|
+
readonly nativeToolCalls = false;
|
|
90
92
|
private readonly claudePath;
|
|
91
93
|
private readonly fileTools?;
|
|
92
94
|
private readonly remindersFile?;
|
|
@@ -84,3 +84,10 @@ export declare function stripJsonCodeFence(content: string): string;
|
|
|
84
84
|
*/
|
|
85
85
|
export declare function primaryModelFromUsage(modelUsage: Record<string, unknown> | undefined): string | undefined;
|
|
86
86
|
export declare function parseClaudeCliOutput(stdout: string): ParsedClaudeCliOutput;
|
|
87
|
+
/**
|
|
88
|
+
* What to say when `claude` exits with a failure. The CLI prints its own error on stderr for some failures, but with `--output-format json`
|
|
89
|
+
* it reports others (a logged-out session: "Not logged in · Please run /login") as `{"is_error":true,"result":"..."}` on stdout and leaves
|
|
90
|
+
* stderr empty, so reading stderr alone lost the reason and left only "exited with code 1". The desktop shell's Rust twin
|
|
91
|
+
* (`claude_failure_message` in lib.rs) follows the same order.
|
|
92
|
+
*/
|
|
93
|
+
export declare function claudeFailureMessage(stdout: string, stderr: string, code: number | string | null): string;
|
package/dist/cli.js
CHANGED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { MemoryAdapter } from '@buildaharness/runtime';
|
|
2
|
+
/** One list to replace. `value: null` removes the list (distinct from an empty list, so an undo can restore "absent"). */
|
|
3
|
+
export interface FactChange {
|
|
4
|
+
key: string;
|
|
5
|
+
value: unknown[] | null;
|
|
6
|
+
}
|
|
7
|
+
/** Thrown by `apply()` when `expectedVersion` is not the repository's current version. */
|
|
8
|
+
export declare class VersionConflictError extends Error {
|
|
9
|
+
readonly expected: number;
|
|
10
|
+
readonly actual: number;
|
|
11
|
+
constructor(expected: number, actual: number);
|
|
12
|
+
}
|
|
13
|
+
export interface FactQuery<T> {
|
|
14
|
+
/** Keep only rows for which this returns true (status, tier, attribute key and project are all row predicates). */
|
|
15
|
+
where?: (row: T) => boolean;
|
|
16
|
+
}
|
|
17
|
+
export interface FactRepository {
|
|
18
|
+
/** Monotonic counter, bumped by every successful `apply`/`put`/`remove`/`appendEvents`. */
|
|
19
|
+
version(): number;
|
|
20
|
+
/** The whole list stored under `key`, `[]` when absent. */
|
|
21
|
+
list<T>(key: string, query?: FactQuery<T>): Promise<T[]>;
|
|
22
|
+
/** The first row under `key` whose id (from `idOf`) equals `id`. */
|
|
23
|
+
get<T>(key: string, id: string, idOf: (row: T) => string): Promise<T | undefined>;
|
|
24
|
+
/** Replace several lists as one commit: all land or none do. Throws `VersionConflictError` if `expectedVersion` is stale. */
|
|
25
|
+
apply(changes: FactChange[], expectedVersion?: number): Promise<number>;
|
|
26
|
+
/** Single-list shorthands for `apply`. */
|
|
27
|
+
put(key: string, value: unknown[]): Promise<void>;
|
|
28
|
+
remove(key: string): Promise<void>;
|
|
29
|
+
/** Append to an ordered event list in one step, then let `trim` bound it. Order of appends is preserved. */
|
|
30
|
+
appendEvents<T>(key: string, events: T[], trim?: (all: T[]) => T[]): Promise<T[]>;
|
|
31
|
+
}
|
|
32
|
+
/** Today's behaviour: each list lives under its own `MemoryAdapter` key. The version is per instance (one process). */
|
|
33
|
+
export declare class KeyValueFactRepository implements FactRepository {
|
|
34
|
+
private readonly store;
|
|
35
|
+
private ver;
|
|
36
|
+
constructor(store: MemoryAdapter);
|
|
37
|
+
version(): number;
|
|
38
|
+
list<T>(key: string, query?: FactQuery<T>): Promise<T[]>;
|
|
39
|
+
get<T>(key: string, id: string, idOf: (row: T) => string): Promise<T | undefined>;
|
|
40
|
+
apply(changes: FactChange[], expectedVersion?: number): Promise<number>;
|
|
41
|
+
put(key: string, value: unknown[]): Promise<void>;
|
|
42
|
+
remove(key: string): Promise<void>;
|
|
43
|
+
appendEvents<T>(key: string, events: T[], trim?: (all: T[]) => T[]): Promise<T[]>;
|
|
44
|
+
}
|
|
@@ -758,6 +758,25 @@ export function createReminder(remindersFile, rawText) {
|
|
|
758
758
|
return run
|
|
759
759
|
}
|
|
760
760
|
|
|
761
|
+
/**
|
|
762
|
+
* Eval harness only. `BENCHMARK_TOOL_FAILURE` (JSON `{"remaining": N, "symptom": "..."}`) makes the first N
|
|
763
|
+
* read_file / list_directory calls of this subprocess fail with the symptom text; unset (the product case) it
|
|
764
|
+
* is inert. The benchmark's `bare` arm uses it because its tool calls resolve in here, out of process. The
|
|
765
|
+
* parent re-arms it per `claude -p` invocation with the failures still owed.
|
|
766
|
+
*/
|
|
767
|
+
export const BENCHMARK_DEFAULT_SYMPTOM = 'injected: persistent tool failure (ETIMEDOUT)'
|
|
768
|
+
let benchmarkFailuresTaken = 0
|
|
769
|
+
export function resetBenchmarkToolFailureForTests() { benchmarkFailuresTaken = 0 }
|
|
770
|
+
export function takeBenchmarkToolFailure(env = process.env) {
|
|
771
|
+
const raw = env.BENCHMARK_TOOL_FAILURE
|
|
772
|
+
if (!raw) return undefined
|
|
773
|
+
let spec
|
|
774
|
+
try { spec = JSON.parse(raw) } catch { return undefined }
|
|
775
|
+
if (!spec || !(Number(spec.remaining) > benchmarkFailuresTaken)) return undefined
|
|
776
|
+
benchmarkFailuresTaken += 1
|
|
777
|
+
return typeof spec.symptom === 'string' && spec.symptom ? spec.symptom : BENCHMARK_DEFAULT_SYMPTOM
|
|
778
|
+
}
|
|
779
|
+
|
|
761
780
|
async function main() {
|
|
762
781
|
const workspaceRoot = process.env.WORKSPACE_ROOT
|
|
763
782
|
if (!workspaceRoot) {
|
|
@@ -784,6 +803,11 @@ async function main() {
|
|
|
784
803
|
if (gate.decision === 'deny') {
|
|
785
804
|
return { content: [{ type: 'text', text: `Denied: ${gate.reason ?? 'not permitted by tool policy'}` }], isError: true }
|
|
786
805
|
}
|
|
806
|
+
const injected = takeBenchmarkToolFailure()
|
|
807
|
+
if (injected !== undefined) {
|
|
808
|
+
await reportToolResult('read_file', { path }, `Error: ${injected}`, false)
|
|
809
|
+
return { content: [{ type: 'text', text: `Error: ${injected}` }], isError: true }
|
|
810
|
+
}
|
|
787
811
|
const resolved = await resolveAndVerify(workspaceRoot, path)
|
|
788
812
|
const content = await readFile(resolved, 'utf-8').catch((err) => {
|
|
789
813
|
if (isEnoent(err)) return undefined
|
|
@@ -816,6 +840,11 @@ async function main() {
|
|
|
816
840
|
if (gate.decision === 'deny') {
|
|
817
841
|
return { content: [{ type: 'text', text: `Denied: ${gate.reason ?? 'not permitted by tool policy'}` }], isError: true }
|
|
818
842
|
}
|
|
843
|
+
const injected = takeBenchmarkToolFailure()
|
|
844
|
+
if (injected !== undefined) {
|
|
845
|
+
await reportToolResult('list_directory', { path }, `Error: ${injected}`, false)
|
|
846
|
+
return { content: [{ type: 'text', text: `Error: ${injected}` }], isError: true }
|
|
847
|
+
}
|
|
819
848
|
const resolved = await resolveAndVerify(workspaceRoot, path)
|
|
820
849
|
const names = await readdir(resolved).catch((err) => {
|
|
821
850
|
if (isEnoent(err)) return []
|
package/dist/harness-bridge.d.ts
CHANGED
|
@@ -11,11 +11,11 @@ import { AssistantProgress } from './assistant-types.js';
|
|
|
11
11
|
import { TraceEvent } from './trace-events.js';
|
|
12
12
|
import { EscalationPlan } from './layer-policy-wiring.js';
|
|
13
13
|
/**
|
|
14
|
-
* `AUDIT_VERIFICATION` gate — feature-value audit (Phase C5 of the internal plan).
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* one call site (below)
|
|
14
|
+
* `AUDIT_VERIFICATION` gate — feature-value audit (Phase C5 of the internal plan). Default **ON** (an
|
|
15
|
+
* unset / empty / truthy value keeps today's always-on verification). A falsy value (`0` / `false` /
|
|
16
|
+
* `off` / `no` / `disabled`) makes `HarnessBridge.run` pass `skipVerification: true` to HarnessRuntime.
|
|
17
|
+
* Set by the benchmark's `verificationOff` arm and by the user's `mandatory_verification` layer setting
|
|
18
|
+
* (`layer-settings.ts`). Read at exactly one call site (below). Same shape as `semanticContradictionEnabled()`.
|
|
19
19
|
*/
|
|
20
20
|
export declare function verificationEnabled(env?: Record<string, string | undefined>): boolean;
|
|
21
21
|
/**
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML to markdown for pulling a page in to edit: no DOM, so it runs in the shared code. It keeps the structure an article has (headings, paragraphs,
|
|
3
|
+
* lists, quotes, code, links, emphasis) and drops what is not the article (scripts, styles, navigation, headers and footers outside the main text,
|
|
4
|
+
* forms, comments). When the page has a <main> or <article>, only that is used. It is a reader, not a parser of every page on the web: odd markup
|
|
5
|
+
* comes out as plain paragraphs.
|
|
6
|
+
*/
|
|
7
|
+
/** True when the text is an HTML document or fragment (it has a structural tag near its start). */
|
|
8
|
+
export declare function looksLikeHtml(text: string): boolean;
|
|
9
|
+
export declare function htmlToMarkdown(html: string): string;
|
|
10
|
+
/** The page's own title from its <title>, with a trailing site name (after a pipe, dash or colon) removed; undefined when it has none. */
|
|
11
|
+
export declare function htmlTitle(html: string): string | undefined;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export type { AssistantTurnResult, ProposerKind, PersonalAssistantOptions, Assis
|
|
|
3
3
|
export type { MemoryStatus, MemoryInjection, AuditEntry, ConsolidationOutcome } from './memory-service.js';
|
|
4
4
|
export type { ConsolidationProposal } from './memory-consolidation.js';
|
|
5
5
|
export type { SessionDigest } from './episodic-digest.js';
|
|
6
|
+
export type { MemoryEvent, MemoryEventKind, ReasonCode, SourceRef, EventSink, EventFilter } from './memory-events.js';
|
|
7
|
+
export { InMemoryEventSink, MemoryEventSchema, factKey, foldDurable, filterEvents, formatMemoryEvents } from './memory-events.js';
|
|
6
8
|
export type { MemoryWriteMode } from './memory-governance.js';
|
|
7
9
|
export { MEMORY_WRITE_MODES, DEFAULT_MEMORY_WRITE_MODE, resolveMemoryWriteMode } from './memory-governance.js';
|
|
8
10
|
export type { GoalGraphState, GoalThreadView, GoalThreadVisibility, GoalTaskSummary } from './goal-graph-service.js';
|
|
@@ -47,7 +49,7 @@ export { WEB_TOOLS, WEB_SEARCH_TOOL, FETCH_URL_TOOL, executeWebTool, assertPubli
|
|
|
47
49
|
export type { WebToolsContext, WebToolResult, WebSearchResult, DnsResolver } from './web-tools.js';
|
|
48
50
|
export { braveSearch } from './web-search-provider.js';
|
|
49
51
|
export type { BraveSearchOptions } from './web-search-provider.js';
|
|
50
|
-
export { buildClaudePrompt, stripJsonCodeFence, parseClaudeCliOutput, ALREADY_STAGED_ACTION_TOOL, stagedActionInput } from './claude-cli-prompt.js';
|
|
52
|
+
export { buildClaudePrompt, claudeFailureMessage, stripJsonCodeFence, parseClaudeCliOutput, ALREADY_STAGED_ACTION_TOOL, stagedActionInput } from './claude-cli-prompt.js';
|
|
51
53
|
export type { ParsedClaudeCliOutput } from './claude-cli-prompt.js';
|
|
52
54
|
export { stripMcpToolPrefix, summarizeToolStep, summarizeSettledToolStep } from './tool-step.js';
|
|
53
55
|
export type { AssistantToolStep } from './tool-step.js';
|
|
@@ -65,7 +67,7 @@ export type { PlanRecord, PlanTaskRecord, PlanPosition, PlanMode } from './plan-
|
|
|
65
67
|
export type { PlanDecision, PlanApprovalEdits } from './plan-approval-service.js';
|
|
66
68
|
export { resolveConfig, validateConfig, ConfigValidationError, DEFAULT_CONFIG, CONFIG_KEYS } from './config.js';
|
|
67
69
|
export type { AssistantConfig, ConfigStore, ResolvedConfig } from './config.js';
|
|
68
|
-
export { LAYER_SETTINGS, applyLayerSettings, effectiveState, withLayerChoice, sanitizeLayerChoices, formatLayerListing, findLayer, isToggleable, LayerSettingError } from './layer-settings.js';
|
|
70
|
+
export { LAYER_SETTINGS, applyLayerSettings, effectiveState, withLayerChoice, sanitizeLayerChoices, formatLayerListing, findLayer, followersOf, unmetRequirements, layerWarnings, isToggleable, LayerSettingError } from './layer-settings.js';
|
|
69
71
|
export type { LayerSetting, LayerGroup, LayerChoices, AppliedLayers } from './layer-settings.js';
|
|
70
72
|
export { resolveOneLoopMode, normalizeOneLoopMode, DEFAULT_ONE_LOOP_MODE } from './one-loop-flag.js';
|
|
71
73
|
export type { OneLoopMode } from './one-loop-flag.js';
|
|
@@ -100,3 +102,81 @@ export type { CostSummaryInfo, DoctorCheck } from './cli-session.js';
|
|
|
100
102
|
export { estimateCostUsd } from './model-pricing.js';
|
|
101
103
|
export { PROVIDER_SETUP, getProviderSetup, cleanApiKey, checkApiKeyFormat, testApiKey } from './provider-setup.js';
|
|
102
104
|
export type { KeyedBackend, ProviderSetupInfo, KeyTestResult } from './provider-setup.js';
|
|
105
|
+
export { WriterChatStateSchema, WriterCommentSchema, WriterCorrectionSchema, WRITER_CHAT_STATE_VERSION, createEmptyWriterChatState, applyCaptureOps, renderWriterChatBlock } from './writer/writer-chat-state.js';
|
|
106
|
+
export type { WriterChatState, WriterComment, WriterCorrection, ArticleRef, CaptureOp, ApplyResult } from './writer/writer-chat-state.js';
|
|
107
|
+
export { ACTIVITY_KEY, MAX_ACTIVITY_RECORDS, addRecord, activityReport, createActivityLog, summarizeActivity, isJobRecord, typicalMs, usuallyText, MIN_RUNS_FOR_TYPICAL } from './writer/write-activity.js';
|
|
108
|
+
export type { ActivityLog, ActivitySummary, JobOutcome, JobRecord, KindSummary } from './writer/write-activity.js';
|
|
109
|
+
export { summarizeSectionChange, describeSectionChange, NAME_OPEN, NAME_CLOSE } from './writer/article-change-summary.js';
|
|
110
|
+
export type { SectionChange } from './writer/article-change-summary.js';
|
|
111
|
+
export { readWriterIntent } from './writer/writer-intent.js';
|
|
112
|
+
export type { ChatIntent, WriterIntent } from './writer/writer-intent.js';
|
|
113
|
+
export { chatHistoryMessages } from './writer/writer-chat-history.js';
|
|
114
|
+
export type { ChatTurn } from './writer/writer-chat-history.js';
|
|
115
|
+
export { captureChatState } from './writer/writer-chat-capture.js';
|
|
116
|
+
export type { CaptureResult, CaptureStatus } from './writer/writer-chat-capture.js';
|
|
117
|
+
export { ArticleMetaSchema, SectionSchema, ClaimSchema, SourceSchema, LinkSchema, SuggestionSchema, ARTICLE_META_VERSION, createArticleMeta, parseArticleMeta } from './writer/article-model.js';
|
|
118
|
+
export type { ArticleMeta, Section, Claim, Source, Link, Suggestion, Idea, SourceStatus, ReviewState, LoadResult } from './writer/article-model.js';
|
|
119
|
+
export { parseSections, reconcileSections } from './writer/article-sections.js';
|
|
120
|
+
export type { ReconcileResult, ParsedHeading } from './writer/article-sections.js';
|
|
121
|
+
export { effectiveSourceStatus, editClaimText, setSectionReview, removeLink, confirmLink, checkIntegrity, computeReadiness, createSnapshot, restoreSnapshot } from './writer/article-rules.js';
|
|
122
|
+
export type { Actor, Problem, Readiness, Snapshot } from './writer/article-rules.js';
|
|
123
|
+
export { serializeArticle, loadArticleFolder } from './writer/article-folder.js';
|
|
124
|
+
export type { ArticleFolder, ArticleBundle, FolderLoad } from './writer/article-folder.js';
|
|
125
|
+
export { fingerprintPassage, createSource, applyRecheck, acceptNewPassage } from './writer/article-sources.js';
|
|
126
|
+
export { extractClaims, batchSections } from './writer/article-claims.js';
|
|
127
|
+
export type { ExtractionResult } from './writer/article-claims.js';
|
|
128
|
+
export { checkClaimSupport, sourcesForClaim, needsAutoCheck } from './writer/article-support.js';
|
|
129
|
+
export type { SupportCheck, SupportVerdict } from './writer/article-support.js';
|
|
130
|
+
export { resolveChange, assessSourceChange, linkedSectionIds } from './writer/article-resolver.js';
|
|
131
|
+
export type { Change, ResolveResult, SourceImpact, SourceChangeResult } from './writer/article-resolver.js';
|
|
132
|
+
export { processWriterMessage, recordWriterMessage, createMemoryWriterChatPort } from './writer/writer-chat-turn.js';
|
|
133
|
+
export type { WriterChatPort } from './writer/writer-chat-turn.js';
|
|
134
|
+
export { proposeSuggestion, refreshSuggestions, acceptSuggestion, rejectSuggestion } from './writer/article-suggestions.js';
|
|
135
|
+
export type { SuggestionResult } from './writer/article-suggestions.js';
|
|
136
|
+
export type { SourceCandidate, SourceRecheckReport } from './writer/article-service.js';
|
|
137
|
+
export { githubRepoReader, parseGithubRepoAddress } from './writer/repo-reader.js';
|
|
138
|
+
export type { RepoReader, GithubRepoSpec } from './writer/repo-reader.js';
|
|
139
|
+
export type { ChatStageListener } from './writer/article-service.js';
|
|
140
|
+
export { ArticleService, createArticleChatPort, createMemoryArticleStore, serializeByArticle } from './writer/article-service.js';
|
|
141
|
+
export type { ArticleStore, ArticleServiceOptions, UpdateOutcome, ChatEditResult, OutlineEditResult } from './writer/article-service.js';
|
|
142
|
+
export { createMemoryAdapterArticleStore } from './writer/article-memory-store.js';
|
|
143
|
+
export { suggestEdits } from './writer/article-edit-suggest.js';
|
|
144
|
+
export type { EditSuggestResult } from './writer/article-edit-suggest.js';
|
|
145
|
+
export { WritePermissionsSchema, DEFAULT_WRITE_PERMISSIONS, loadPermissions, savePermissions, createSpendMeter, withSpendCap, SpendCapReachedError } from './writer/write-permissions.js';
|
|
146
|
+
export type { WritePermissions, SpendMeter, SpendSnapshot, SettingsStore, CountedUsage } from './writer/write-permissions.js';
|
|
147
|
+
export { diffForDisplay, inlineDiff, diffLines, compareVersions, addSnapshot, isLargeChange, MAX_CHECKPOINTS, MAX_AUTOSAVES, AUTOSAVE_LABEL } from './writer/article-history.js';
|
|
148
|
+
export { autosaveStep, type AutosaveStep } from './writer/article-autosave.js';
|
|
149
|
+
export type { DiffLine, DisplayLine, InlinePart, VersionComparison, VersionSide } from './writer/article-history.js';
|
|
150
|
+
export { summarizeChange } from './writer/article-history.js';
|
|
151
|
+
export type { ChangeSummary } from './writer/article-history.js';
|
|
152
|
+
export { proposeDependencies, addDrawnLink, dependenciesOf, wouldCycle, DEPENDENCY_KINDS, DEPENDENCY_LABEL } from './writer/article-dependencies.js';
|
|
153
|
+
export type { DependencyKind, DependencyProposal, SectionDependencies, AddLinkResult } from './writer/article-dependencies.js';
|
|
154
|
+
export { textUnitAt, claimsInRange, attachSourceToText, proposeSourceLinks } from './writer/article-source-links.js';
|
|
155
|
+
export type { TextUnit, TextRange, AttachResult, SourceLinkProposal } from './writer/article-source-links.js';
|
|
156
|
+
export { suggestedModels, modelLabel, CLI_DEFAULT_LABEL, defaultWriteModels } from './writer/write-models.js';
|
|
157
|
+
export type { WriteModelDefaults } from './writer/write-models.js';
|
|
158
|
+
export { addIdea, editIdea, setIdeaState, removeIdea, suggestIdeas } from './writer/article-ideas.js';
|
|
159
|
+
export type { IdeaSuggestion } from './writer/article-ideas.js';
|
|
160
|
+
export { setBrief, applyProfile, cleanProfile, renderStyleGuide, loadProfiles, saveProfile, deleteProfile } from './writer/article-style.js';
|
|
161
|
+
export { folderFileAddress, pathInFolder, walkFolder, folderFromFsBackend, folderFromListing, matchFolderFiles, isSkippedFolder, type FolderReader } from './writer/local-folder.js';
|
|
162
|
+
export { verifyTargets, lookupNote, currentLookup, summarizeVerify, summarizeArticleSources, DEFAULT_VERIFY_LIMIT, type VerifyEntry, type VerifyOutcome, type VerifyReport } from './writer/article-verify.js';
|
|
163
|
+
export { htmlToMarkdown, looksLikeHtml } from './html-to-markdown.js';
|
|
164
|
+
export { pageToArticle, sourceKindForFile, documentFormatForFile, parseLineRange, parseRepoFileLink, sliceLines, excerptFor, type LineRange } from './writer/article-sources.js';
|
|
165
|
+
export { CALL_TYPES, callTypeLabel, classifyCall } from './writer/write-spend.js';
|
|
166
|
+
export type { CallType } from './writer/write-spend.js';
|
|
167
|
+
export { claimMarks } from './writer/article-marks.js';
|
|
168
|
+
export { expandSelection, unitOfSelection, type SelectionRange, type SelectionUnit } from './writer/article-selection.js';
|
|
169
|
+
export { outlineOf, expandOutlineSelection, outlineToText, applyOutlineText, renameHeadingInText, type OutlineEntry } from './writer/article-outline.js';
|
|
170
|
+
export { revisionsOfText, type TextRevision, type TextRevisions, type VersionText } from './writer/article-revisions.js';
|
|
171
|
+
export { shouldDeriveStyle, STYLE_DERIVE_MIN_WORDS } from './writer/article-style-derive.js';
|
|
172
|
+
export { textPieces, describeAt, type TextPiece } from './writer/article-decorations.js';
|
|
173
|
+
export type { ClaimMark, MarkTone } from './writer/article-marks.js';
|
|
174
|
+
export type { Brief, StyleProfile } from './writer/article-model.js';
|
|
175
|
+
export { WRITE_PARAMETERS, PARAMETER_GROUPS, findParameter, adjustmentInstruction, adjustmentChoices, adjustmentFromText } from './writer/write-parameters.js';
|
|
176
|
+
export type { WriteParameter, ParameterGroup, ParameterKind } from './writer/write-parameters.js';
|
|
177
|
+
export { addCommentOnText, commentsInRange, refreshComments } from './writer/article-comments.js';
|
|
178
|
+
export { collectIssues, issuesInRange, issueCount, checkableClaims, unsupportedClaims, ISSUE_CATEGORIES } from './writer/article-issues.js';
|
|
179
|
+
export type { IssueBatch, IssueItem, IssueCategory } from './writer/article-issues.js';
|
|
180
|
+
export { workPlan, checklistAt, stageSentence, elapsedText, changedRange, litRange, claimResultLine, recentResults } from './writer/work-progress.js';
|
|
181
|
+
export type { WorkKind, WorkPlan, StepState, ChecklistItem, ResultLine, ResultTone } from './writer/work-progress.js';
|
|
182
|
+
export { modelFailureHint, DEFAULT_MODEL_HINT, CLAUDE_SIGN_IN_HINT } from './writer/model-failure-hint.js';
|