ctxr-cli 0.1.0 → 0.2.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/adapters/forge/github.d.ts +4 -1
- package/dist/adapters/forge/github.d.ts.map +1 -1
- package/dist/adapters/forge/github.js +41 -1
- package/dist/adapters/forge/github.js.map +1 -1
- package/dist/adapters/forge/types.d.ts +23 -0
- package/dist/adapters/forge/types.d.ts.map +1 -1
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/adapters/types.js +2 -1
- package/dist/adapters/types.js.map +1 -1
- package/dist/commands/check.d.ts +12 -4
- package/dist/commands/check.d.ts.map +1 -1
- package/dist/commands/check.js +28 -1
- package/dist/commands/check.js.map +1 -1
- package/dist/commands/entry-append.d.ts +25 -0
- package/dist/commands/entry-append.d.ts.map +1 -0
- package/dist/commands/entry-append.js +39 -0
- package/dist/commands/entry-append.js.map +1 -0
- package/dist/commands/graph-build.d.ts +5 -0
- package/dist/commands/graph-build.d.ts.map +1 -1
- package/dist/commands/graph-build.js +8 -5
- package/dist/commands/graph-build.js.map +1 -1
- package/dist/commands/graph-query.d.ts +15 -0
- package/dist/commands/graph-query.d.ts.map +1 -1
- package/dist/commands/graph-query.js +12 -2
- package/dist/commands/graph-query.js.map +1 -1
- package/dist/commands/identity.d.ts +24 -0
- package/dist/commands/identity.d.ts.map +1 -0
- package/dist/commands/identity.js +35 -0
- package/dist/commands/identity.js.map +1 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +7 -7
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/rollup-stale.d.ts +18 -0
- package/dist/commands/rollup-stale.d.ts.map +1 -0
- package/dist/commands/rollup-stale.js +35 -0
- package/dist/commands/rollup-stale.js.map +1 -0
- package/dist/commands/rollup-write.d.ts +9 -1
- package/dist/commands/rollup-write.d.ts.map +1 -1
- package/dist/commands/rollup-write.js +17 -2
- package/dist/commands/rollup-write.js.map +1 -1
- package/dist/commands/session-capture.d.ts +25 -0
- package/dist/commands/session-capture.d.ts.map +1 -0
- package/dist/commands/session-capture.js +119 -0
- package/dist/commands/session-capture.js.map +1 -0
- package/dist/commands/session-land.d.ts +45 -0
- package/dist/commands/session-land.d.ts.map +1 -0
- package/dist/commands/session-land.js +140 -0
- package/dist/commands/session-land.js.map +1 -0
- package/dist/commands/session-list.d.ts.map +1 -1
- package/dist/commands/session-list.js +3 -2
- package/dist/commands/session-list.js.map +1 -1
- package/dist/commands/session-reap.d.ts.map +1 -1
- package/dist/commands/session-reap.js +3 -2
- package/dist/commands/session-reap.js.map +1 -1
- package/dist/commands/session-submit.d.ts +2 -0
- package/dist/commands/session-submit.d.ts.map +1 -1
- package/dist/commands/session-submit.js +6 -2
- package/dist/commands/session-submit.js.map +1 -1
- package/dist/commands/source-add-alt.d.ts +20 -0
- package/dist/commands/source-add-alt.d.ts.map +1 -0
- package/dist/commands/source-add-alt.js +48 -0
- package/dist/commands/source-add-alt.js.map +1 -0
- package/dist/commands/source-check.js +1 -1
- package/dist/commands/source-check.js.map +1 -1
- package/dist/commands/source-stamp.d.ts +24 -0
- package/dist/commands/source-stamp.d.ts.map +1 -0
- package/dist/commands/source-stamp.js +46 -0
- package/dist/commands/source-stamp.js.map +1 -0
- package/dist/commands/verify.js +2 -2
- package/dist/commands/verify.js.map +1 -1
- package/dist/config/defaults.d.ts +13 -0
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +13 -0
- package/dist/config/defaults.js.map +1 -1
- package/dist/config/schema.d.ts +31 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +42 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/core/agents-doc.d.ts.map +1 -1
- package/dist/core/agents-doc.js +3 -1
- package/dist/core/agents-doc.js.map +1 -1
- package/dist/core/checks/disclosure-checks.d.ts +4 -0
- package/dist/core/checks/disclosure-checks.d.ts.map +1 -0
- package/dist/core/checks/disclosure-checks.js +24 -0
- package/dist/core/checks/disclosure-checks.js.map +1 -0
- package/dist/core/checks/identity-checks.d.ts +6 -1
- package/dist/core/checks/identity-checks.d.ts.map +1 -1
- package/dist/core/checks/identity-checks.js +23 -19
- package/dist/core/checks/identity-checks.js.map +1 -1
- package/dist/core/checks/integrity-checks.js +2 -2
- package/dist/core/checks/integrity-checks.js.map +1 -1
- package/dist/core/checks/manifest.d.ts.map +1 -1
- package/dist/core/checks/manifest.js +2 -0
- package/dist/core/checks/manifest.js.map +1 -1
- package/dist/core/checks/organize-checks.d.ts +2 -0
- package/dist/core/checks/organize-checks.d.ts.map +1 -1
- package/dist/core/checks/organize-checks.js +24 -1
- package/dist/core/checks/organize-checks.js.map +1 -1
- package/dist/core/checks/write-lifecycle-checks.d.ts +4 -1
- package/dist/core/checks/write-lifecycle-checks.d.ts.map +1 -1
- package/dist/core/checks/write-lifecycle-checks.js +18 -2
- package/dist/core/checks/write-lifecycle-checks.js.map +1 -1
- package/dist/core/disclosure/leak-scan.d.ts +19 -0
- package/dist/core/disclosure/leak-scan.d.ts.map +1 -0
- package/dist/core/disclosure/leak-scan.js +31 -0
- package/dist/core/disclosure/leak-scan.js.map +1 -0
- package/dist/core/errors.d.ts +40 -0
- package/dist/core/errors.d.ts.map +1 -1
- package/dist/core/errors.js +128 -0
- package/dist/core/errors.js.map +1 -1
- package/dist/core/fs/fenced-region.d.ts +9 -0
- package/dist/core/fs/fenced-region.d.ts.map +1 -1
- package/dist/core/fs/fenced-region.js +40 -0
- package/dist/core/fs/fenced-region.js.map +1 -1
- package/dist/core/git/repo.d.ts +2 -0
- package/dist/core/git/repo.d.ts.map +1 -1
- package/dist/core/git/repo.js +4 -0
- package/dist/core/git/repo.js.map +1 -1
- package/dist/core/graph/document.d.ts +26 -0
- package/dist/core/graph/document.d.ts.map +1 -0
- package/dist/core/graph/document.js +67 -0
- package/dist/core/graph/document.js.map +1 -0
- package/dist/core/graph/model.d.ts +44 -2
- package/dist/core/graph/model.d.ts.map +1 -1
- package/dist/core/graph/model.js +65 -6
- package/dist/core/graph/model.js.map +1 -1
- package/dist/core/graph/persist.d.ts +4 -0
- package/dist/core/graph/persist.d.ts.map +1 -1
- package/dist/core/graph/persist.js +10 -0
- package/dist/core/graph/persist.js.map +1 -1
- package/dist/core/graph/query.d.ts +24 -0
- package/dist/core/graph/query.d.ts.map +1 -1
- package/dist/core/graph/query.js +45 -2
- package/dist/core/graph/query.js.map +1 -1
- package/dist/core/identity.d.ts +36 -4
- package/dist/core/identity.d.ts.map +1 -1
- package/dist/core/identity.js +119 -12
- package/dist/core/identity.js.map +1 -1
- package/dist/core/ingest/canonical-url.d.ts +11 -0
- package/dist/core/ingest/canonical-url.d.ts.map +1 -0
- package/dist/core/ingest/canonical-url.js +27 -0
- package/dist/core/ingest/canonical-url.js.map +1 -0
- package/dist/core/ingest/identity.d.ts +2 -0
- package/dist/core/ingest/identity.d.ts.map +1 -1
- package/dist/core/ingest/identity.js +2 -0
- package/dist/core/ingest/identity.js.map +1 -1
- package/dist/core/ingest/model.d.ts +9 -2
- package/dist/core/ingest/model.d.ts.map +1 -1
- package/dist/core/ingest/model.js +32 -3
- package/dist/core/ingest/model.js.map +1 -1
- package/dist/core/procedures.d.ts +32 -12
- package/dist/core/procedures.d.ts.map +1 -1
- package/dist/core/procedures.js +613 -75
- package/dist/core/procedures.js.map +1 -1
- package/dist/core/rollup.d.ts +29 -0
- package/dist/core/rollup.d.ts.map +1 -0
- package/dist/core/rollup.js +60 -0
- package/dist/core/rollup.js.map +1 -0
- package/dist/core/session.d.ts +14 -0
- package/dist/core/session.d.ts.map +1 -1
- package/dist/core/session.js +19 -0
- package/dist/core/session.js.map +1 -1
- package/dist/core/write-lifecycle/path-gate.d.ts +20 -0
- package/dist/core/write-lifecycle/path-gate.d.ts.map +1 -0
- package/dist/core/write-lifecycle/path-gate.js +90 -0
- package/dist/core/write-lifecycle/path-gate.js.map +1 -0
- package/dist/prompt/inquirer-prompter.d.ts.map +1 -1
- package/dist/prompt/inquirer-prompter.js +4 -1
- package/dist/prompt/inquirer-prompter.js.map +1 -1
- package/dist/prompt/prompter.d.ts +9 -0
- package/dist/prompt/prompter.d.ts.map +1 -1
- package/dist/run.d.ts.map +1 -1
- package/dist/run.js +149 -4
- package/dist/run.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/init.js
CHANGED
|
@@ -3,7 +3,7 @@ import { mkdir, readFile } from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { parse as parseYaml } from 'yaml';
|
|
5
5
|
import { z } from 'zod';
|
|
6
|
-
import { DEFAULT_ADAPTERS, DEFAULT_ARCHIVE_PATH, DEFAULT_CATALOG_PATH, DEFAULT_CATALOG_SECTION_MAX_BYTES, DEFAULT_CONVENTIONS_PATH, DEFAULT_DERIVED_PATHS, DEFAULT_DIFF_SIZE_CEILING_LINES, DEFAULT_EXCLUDE_PATHS, DEFAULT_HARD_WALLS, DEFAULT_IDENTITY_PATH, DEFAULT_INBOX_PATH, DEFAULT_INTERNAL_AUDIENCES, DEFAULT_PROCEDURES_PATH, DEFAULT_SESSION_BRANCH_PREFIX, DEFAULT_VISIBILITY_CONTEXT, DEFAULT_VISIBILITY_FIELD_KEY, DEFAULT_WORKTREES_PATH, } from '../config/defaults.js';
|
|
6
|
+
import { DEFAULT_ADAPTERS, DEFAULT_ARCHIVE_PATH, DEFAULT_ROLLUP_STALE_DAYS, DEFAULT_CATALOG_PATH, DEFAULT_CATALOG_SECTION_MAX_BYTES, DEFAULT_CONVENTIONS_PATH, DEFAULT_DERIVED_PATHS, DEFAULT_DIFF_SIZE_CEILING_LINES, DEFAULT_EXCLUDE_PATHS, DEFAULT_HARD_WALLS, DEFAULT_IDENTITY_PATH, DEFAULT_INBOX_PATH, DEFAULT_TRACKING_PARAMS, DEFAULT_INTERNAL_AUDIENCES, DEFAULT_PROCEDURES_PATH, DEFAULT_RELATIONS, DEFAULT_GRAPH_SETTINGS, DEFAULT_SESSION_BRANCH_PREFIX, DEFAULT_VISIBILITY_CONTEXT, DEFAULT_VISIBILITY_FIELD_KEY, DEFAULT_WORKTREES_PATH, } from '../config/defaults.js';
|
|
7
7
|
import { configPathFor, readConfig } from '../config/load.js';
|
|
8
8
|
import { renderStoreConfig } from '../config/render.js';
|
|
9
9
|
import { SUPPORTED_SCHEMA_VERSION, TaxonomyLayerSchema } from '../config/schema.js';
|
|
@@ -126,15 +126,15 @@ async function runInitCore(env, flags) {
|
|
|
126
126
|
fields: { visibility: DEFAULT_VISIBILITY_FIELD_KEY },
|
|
127
127
|
visibility: { default_context: DEFAULT_VISIBILITY_CONTEXT, directory_defaults: {}, contexts: {} },
|
|
128
128
|
derived: { paths: [...DEFAULT_DERIVED_PATHS] },
|
|
129
|
-
retrieval: { exclude_paths: [...DEFAULT_EXCLUDE_PATHS] },
|
|
129
|
+
retrieval: { exclude_paths: [...DEFAULT_EXCLUDE_PATHS], relations: [...DEFAULT_RELATIONS], graph: { ...DEFAULT_GRAPH_SETTINGS, orphan_exempt_clusters: [] } },
|
|
130
130
|
git: { default_branch: defaultBranch },
|
|
131
131
|
session: { branch_prefix: DEFAULT_SESSION_BRANCH_PREFIX, worktrees_path: DEFAULT_WORKTREES_PATH },
|
|
132
|
-
write_lifecycle: { diff_size_ceiling_lines: DEFAULT_DIFF_SIZE_CEILING_LINES },
|
|
132
|
+
write_lifecycle: { diff_size_ceiling_lines: DEFAULT_DIFF_SIZE_CEILING_LINES, writable_paths: [] },
|
|
133
133
|
catalog: { path: DEFAULT_CATALOG_PATH, section_max_bytes: DEFAULT_CATALOG_SECTION_MAX_BYTES },
|
|
134
|
-
disclosure: { internal_audiences: [...DEFAULT_INTERNAL_AUDIENCES], hard_walls: [...DEFAULT_HARD_WALLS] },
|
|
135
|
-
ingest: { inbox_path: DEFAULT_INBOX_PATH },
|
|
136
|
-
organize: { archive_path: DEFAULT_ARCHIVE_PATH },
|
|
137
|
-
identity: { path: DEFAULT_IDENTITY_PATH },
|
|
134
|
+
disclosure: { internal_audiences: [...DEFAULT_INTERNAL_AUDIENCES], hard_walls: [...DEFAULT_HARD_WALLS], leak_markers: {} },
|
|
135
|
+
ingest: { inbox_path: DEFAULT_INBOX_PATH, tracking_params: [...DEFAULT_TRACKING_PARAMS] },
|
|
136
|
+
organize: { archive_path: DEFAULT_ARCHIVE_PATH, rollup_stale_days: DEFAULT_ROLLUP_STALE_DAYS },
|
|
137
|
+
identity: { path: DEFAULT_IDENTITY_PATH, files: {}, entry_delimiter: '' },
|
|
138
138
|
harness: { procedures_path: DEFAULT_PROCEDURES_PATH, conventions_path: DEFAULT_CONVENTIONS_PATH },
|
|
139
139
|
adapters: [...DEFAULT_ADAPTERS],
|
|
140
140
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
|
+
import type { RunEnv } from '../core/env.js';
|
|
3
|
+
import { type StaleRollupEntry } from '../core/rollup.js';
|
|
4
|
+
import type { Store } from '../core/store.js';
|
|
5
|
+
export declare const requires: CommandRequires;
|
|
6
|
+
export interface RollupStaleFlags {
|
|
7
|
+
for?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface RollupStaleData {
|
|
10
|
+
stale: StaleRollupEntry[];
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* context-organize spec (D4): staleness is computed on demand, never
|
|
14
|
+
* cached — this command and the `organize.rollup_stale` lint check share
|
|
15
|
+
* the exact same computation, bounded by the same `organize.rollup_stale_days`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function execute(env: RunEnv, store: Store, flags: RollupStaleFlags): Promise<CommandOutcome<RollupStaleData>>;
|
|
18
|
+
//# sourceMappingURL=rollup-stale.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup-stale.d.ts","sourceRoot":"","sources":["../../src/commands/rollup-stale.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAOD;;;;GAIG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAkB1H"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { NoteNotFoundError } from '../core/errors.js';
|
|
4
|
+
import { ExitCode } from '../core/exit-codes.js';
|
|
5
|
+
import { listNotes } from '../core/notes/list.js';
|
|
6
|
+
import { findStaleRollups } from '../core/rollup.js';
|
|
7
|
+
export const requires = { store: 'required' };
|
|
8
|
+
function toStoreRelativePath(env, store, givenPath) {
|
|
9
|
+
const absolute = path.isAbsolute(givenPath) ? givenPath : path.resolve(env.cwd, givenPath);
|
|
10
|
+
return path.relative(store.root, absolute).split(path.sep).join('/');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* context-organize spec (D4): staleness is computed on demand, never
|
|
14
|
+
* cached — this command and the `organize.rollup_stale` lint check share
|
|
15
|
+
* the exact same computation, bounded by the same `organize.rollup_stale_days`.
|
|
16
|
+
*/
|
|
17
|
+
export async function execute(env, store, flags) {
|
|
18
|
+
let entity;
|
|
19
|
+
if (flags.for) {
|
|
20
|
+
entity = toStoreRelativePath(env, store, flags.for);
|
|
21
|
+
if (!existsSync(path.join(store.root, entity)))
|
|
22
|
+
throw new NoteNotFoundError(entity);
|
|
23
|
+
}
|
|
24
|
+
const notes = await listNotes(store.root, store.config);
|
|
25
|
+
const stale = await findStaleRollups(env.git, store.root, notes, { entity }, store.config.organize.rollup_stale_days);
|
|
26
|
+
return {
|
|
27
|
+
exitCode: ExitCode.Ok,
|
|
28
|
+
data: { stale },
|
|
29
|
+
findings: [],
|
|
30
|
+
humanSummary: `${stale.length} stale rollup(s).`,
|
|
31
|
+
storeRoot: store.root,
|
|
32
|
+
schemaVersion: store.config.schema_version,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=rollup-stale.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollup-stale.js","sourceRoot":"","sources":["../../src/commands/rollup-stale.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAyB,MAAM,mBAAmB,CAAC;AAG5E,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AAU/D,SAAS,mBAAmB,CAAC,GAAW,EAAE,KAAY,EAAE,SAAiB;IACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IAC3F,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,GAAW,EAAE,KAAY,EAAE,KAAuB;IAC9E,IAAI,MAA0B,CAAC;IAC/B,IAAI,KAAK,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,GAAG,mBAAmB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAAE,MAAM,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IACtF,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAEtH,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,EAAE;QACrB,IAAI,EAAE,EAAE,KAAK,EAAE;QACf,QAAQ,EAAE,EAAE;QACZ,YAAY,EAAE,GAAG,KAAK,CAAC,MAAM,mBAAmB;QAChD,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
2
|
import type { RunEnv } from '../core/env.js';
|
|
3
|
+
import { ROLLUP_FENCE } from '../core/rollup.js';
|
|
3
4
|
import type { Store } from '../core/store.js';
|
|
4
5
|
export declare const requires: CommandRequires;
|
|
5
|
-
export
|
|
6
|
+
export { ROLLUP_FENCE };
|
|
6
7
|
export interface RollupWriteFlags {
|
|
7
8
|
entity: string;
|
|
8
9
|
contentFile: string;
|
|
@@ -20,6 +21,13 @@ export interface RollupWriteData {
|
|
|
20
21
|
* codebase. The rollup text itself is supplied by the caller (an agent
|
|
21
22
|
* that already did the reading and synthesis via `rollup gather`'s
|
|
22
23
|
* candidates) — this command's only job is the deterministic write.
|
|
24
|
+
*
|
|
25
|
+
* store-primitives-from-migration-audit spec (D4): a write that actually
|
|
26
|
+
* changes the fenced content ALSO stamps `rolled_up:` with the current
|
|
27
|
+
* time — recording "when this synthesis was last genuinely produced," the
|
|
28
|
+
* baseline `rollup stale` compares backlinks against. A true no-op (content
|
|
29
|
+
* byte-identical) stamps nothing, so re-confirming unchanged content never
|
|
30
|
+
* resets the clock and the file stays byte-identical across runs.
|
|
23
31
|
*/
|
|
24
32
|
export declare function execute(env: RunEnv, store: Store, flags: RollupWriteFlags): Promise<CommandOutcome<RollupWriteData>>;
|
|
25
33
|
//# sourceMappingURL=rollup-write.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup-write.d.ts","sourceRoot":"","sources":["../../src/commands/rollup-write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"rollup-write.d.ts","sourceRoot":"","sources":["../../src/commands/rollup-write.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAO7C,OAAO,EAAmB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,OAAO,EAAE,YAAY,EAAE,CAAC;AAExB,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CAClB;AAOD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAyB1C"}
|
|
@@ -3,10 +3,13 @@ import { readFile } from 'node:fs/promises';
|
|
|
3
3
|
import path from 'node:path';
|
|
4
4
|
import { NoteNotFoundError } from '../core/errors.js';
|
|
5
5
|
import { ExitCode } from '../core/exit-codes.js';
|
|
6
|
+
import { writeFileAtomic } from '../core/fs/atomic.js';
|
|
6
7
|
import { upsertFencedRegionInFile } from '../core/fs/fenced-region.js';
|
|
7
|
-
import {
|
|
8
|
+
import { parseNote } from '../core/notes/parse.js';
|
|
9
|
+
import { renderNoteText } from '../core/notes/render.js';
|
|
10
|
+
import { ROLLED_UP_FIELD, ROLLUP_FENCE } from '../core/rollup.js';
|
|
8
11
|
export const requires = { store: 'required' };
|
|
9
|
-
export
|
|
12
|
+
export { ROLLUP_FENCE };
|
|
10
13
|
function toStoreRelativePath(env, store, givenPath) {
|
|
11
14
|
const absolute = path.isAbsolute(givenPath) ? givenPath : path.resolve(env.cwd, givenPath);
|
|
12
15
|
return path.relative(store.root, absolute).split(path.sep).join('/');
|
|
@@ -20,6 +23,13 @@ function toStoreRelativePath(env, store, givenPath) {
|
|
|
20
23
|
* codebase. The rollup text itself is supplied by the caller (an agent
|
|
21
24
|
* that already did the reading and synthesis via `rollup gather`'s
|
|
22
25
|
* candidates) — this command's only job is the deterministic write.
|
|
26
|
+
*
|
|
27
|
+
* store-primitives-from-migration-audit spec (D4): a write that actually
|
|
28
|
+
* changes the fenced content ALSO stamps `rolled_up:` with the current
|
|
29
|
+
* time — recording "when this synthesis was last genuinely produced," the
|
|
30
|
+
* baseline `rollup stale` compares backlinks against. A true no-op (content
|
|
31
|
+
* byte-identical) stamps nothing, so re-confirming unchanged content never
|
|
32
|
+
* resets the clock and the file stays byte-identical across runs.
|
|
23
33
|
*/
|
|
24
34
|
export async function execute(env, store, flags) {
|
|
25
35
|
const relativePath = toStoreRelativePath(env, store, flags.entity);
|
|
@@ -31,6 +41,11 @@ export async function execute(env, store, flags) {
|
|
|
31
41
|
if (bodyLines.length > 0 && bodyLines[bodyLines.length - 1] === '')
|
|
32
42
|
bodyLines.pop();
|
|
33
43
|
const { changed } = await upsertFencedRegionInFile(absolutePath, ROLLUP_FENCE, bodyLines);
|
|
44
|
+
if (changed) {
|
|
45
|
+
const note = await parseNote(absolutePath, relativePath);
|
|
46
|
+
const frontmatter = { ...note.frontmatter, [ROLLED_UP_FIELD]: env.now().toISOString() };
|
|
47
|
+
await writeFileAtomic(absolutePath, renderNoteText(frontmatter, note.body));
|
|
48
|
+
}
|
|
34
49
|
return {
|
|
35
50
|
exitCode: ExitCode.Ok,
|
|
36
51
|
data: { path: relativePath, changed },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rollup-write.js","sourceRoot":"","sources":["../../src/commands/rollup-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,IAAI,MAAM,WAAW,CAAC;AAG7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"rollup-write.js","sourceRoot":"","sources":["../../src/commands/rollup-write.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
2
|
+
import type { Store } from '../core/store.js';
|
|
3
|
+
export declare const requires: CommandRequires;
|
|
4
|
+
export interface SessionCaptureFlags {
|
|
5
|
+
proposal: string;
|
|
6
|
+
}
|
|
7
|
+
export type CaptureOutcomeKind = 'wrote' | 'appended' | 'refused';
|
|
8
|
+
export interface CaptureItemReport {
|
|
9
|
+
id: string;
|
|
10
|
+
kind: 'note' | 'world_facts' | 'user_facts';
|
|
11
|
+
path?: string;
|
|
12
|
+
outcome: CaptureOutcomeKind;
|
|
13
|
+
reason?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface SessionCaptureData {
|
|
16
|
+
items: CaptureItemReport[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* session-capture-command spec (D2): every item is validated and applied
|
|
20
|
+
* independently — one bad path never blocks the rest. Nothing is scanned
|
|
21
|
+
* or inferred beyond the proposal; judgment already happened in the
|
|
22
|
+
* conversation that produced it.
|
|
23
|
+
*/
|
|
24
|
+
export declare function execute(store: Store, flags: SessionCaptureFlags): Promise<CommandOutcome<SessionCaptureData>>;
|
|
25
|
+
//# sourceMappingURL=session-capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-capture.d.ts","sourceRoot":"","sources":["../../src/commands/session-capture.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAK1E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAwBD,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;AAElE,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,aAAa,GAAG,YAAY,CAAC;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,kBAAkB,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,iBAAiB,EAAE,CAAC;CAC5B;AAsED;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAuCnH"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { existsSync } from 'node:fs';
|
|
2
|
+
import { mkdir, readFile } from 'node:fs/promises';
|
|
3
|
+
import path from 'node:path';
|
|
4
|
+
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
5
|
+
import { ExitCode } from '../core/exit-codes.js';
|
|
6
|
+
import { InvalidCaptureProposalError } from '../core/errors.js';
|
|
7
|
+
import { writeFileAtomic } from '../core/fs/atomic.js';
|
|
8
|
+
import { addIdentityEntry, removeIdentityEntry, replaceIdentityEntry } from '../core/identity.js';
|
|
9
|
+
import { sanctionedPath } from '../core/write-lifecycle/path-gate.js';
|
|
10
|
+
export const requires = { store: 'required' };
|
|
11
|
+
/**
|
|
12
|
+
* session-capture-command spec (D1): the proposal file is the contract
|
|
13
|
+
* between judgment (the agent, in conversation) and execution (this
|
|
14
|
+
* command) — the agent writes only approved items, so "approve by id"
|
|
15
|
+
* happens entirely in the conversation and this command never needs to
|
|
16
|
+
* know about approval at all.
|
|
17
|
+
*/
|
|
18
|
+
function renderNote(frontmatter, body) {
|
|
19
|
+
if (!frontmatter || Object.keys(frontmatter).length === 0)
|
|
20
|
+
return body;
|
|
21
|
+
return `---\n${stringifyYaml(frontmatter, { indent: 2 })}---\n${body}`;
|
|
22
|
+
}
|
|
23
|
+
async function applyNote(store, id, item) {
|
|
24
|
+
if (item.mode !== 'create' && item.mode !== 'append') {
|
|
25
|
+
return { id, kind: 'note', path: item.path, outcome: 'refused', reason: 'mode must be "create" or "append"' };
|
|
26
|
+
}
|
|
27
|
+
const gate = await sanctionedPath(store.config, store.root, item.path);
|
|
28
|
+
if (!gate.ok) {
|
|
29
|
+
return { id, kind: 'note', path: item.path, outcome: 'refused', reason: gate.reason };
|
|
30
|
+
}
|
|
31
|
+
const absolutePath = path.join(store.root, item.path);
|
|
32
|
+
const exists = existsSync(absolutePath);
|
|
33
|
+
if (item.mode === 'create') {
|
|
34
|
+
if (exists)
|
|
35
|
+
return { id, kind: 'note', path: item.path, outcome: 'refused', reason: 'already exists; use mode: append' };
|
|
36
|
+
const frontmatter = { ...item.frontmatter };
|
|
37
|
+
if (item.visibility !== undefined)
|
|
38
|
+
frontmatter[store.config.fields.visibility] = item.visibility;
|
|
39
|
+
await mkdir(path.dirname(absolutePath), { recursive: true });
|
|
40
|
+
await writeFileAtomic(absolutePath, renderNote(frontmatter, item.body));
|
|
41
|
+
return { id, kind: 'note', path: item.path, outcome: 'wrote' };
|
|
42
|
+
}
|
|
43
|
+
if (!exists)
|
|
44
|
+
return { id, kind: 'note', path: item.path, outcome: 'refused', reason: 'append target does not exist' };
|
|
45
|
+
const existing = await readFile(absolutePath, 'utf8');
|
|
46
|
+
const separator = existing.length > 0 && !existing.endsWith('\n') ? '\n' : '';
|
|
47
|
+
await writeFileAtomic(absolutePath, `${existing}${separator}${item.body}`);
|
|
48
|
+
return { id, kind: 'note', path: item.path, outcome: 'appended' };
|
|
49
|
+
}
|
|
50
|
+
async function applyIdentityDelta(store, id, kind, role, item) {
|
|
51
|
+
try {
|
|
52
|
+
if (item.action === 'add') {
|
|
53
|
+
if (item.text === undefined)
|
|
54
|
+
throw new Error('action "add" requires text');
|
|
55
|
+
const result = await addIdentityEntry(store.root, store.config, role, item.text);
|
|
56
|
+
return { id, kind, path: result.path, outcome: 'wrote' };
|
|
57
|
+
}
|
|
58
|
+
if (item.action === 'replace') {
|
|
59
|
+
if (item.text === undefined || item.match === undefined)
|
|
60
|
+
throw new Error('action "replace" requires text and match');
|
|
61
|
+
const result = await replaceIdentityEntry(store.root, store.config, role, item.match, item.text);
|
|
62
|
+
return { id, kind, path: result.path, outcome: 'wrote' };
|
|
63
|
+
}
|
|
64
|
+
if (item.action === 'remove') {
|
|
65
|
+
if (item.match === undefined)
|
|
66
|
+
throw new Error('action "remove" requires match');
|
|
67
|
+
const result = await removeIdentityEntry(store.root, store.config, role, item.match);
|
|
68
|
+
return { id, kind, path: result.path, outcome: 'wrote' };
|
|
69
|
+
}
|
|
70
|
+
throw new Error(`unknown action "${item.action}"`);
|
|
71
|
+
}
|
|
72
|
+
catch (err) {
|
|
73
|
+
return { id, kind, outcome: 'refused', reason: err instanceof Error ? err.message : String(err) };
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* session-capture-command spec (D2): every item is validated and applied
|
|
78
|
+
* independently — one bad path never blocks the rest. Nothing is scanned
|
|
79
|
+
* or inferred beyond the proposal; judgment already happened in the
|
|
80
|
+
* conversation that produced it.
|
|
81
|
+
*/
|
|
82
|
+
export async function execute(store, flags) {
|
|
83
|
+
let raw;
|
|
84
|
+
try {
|
|
85
|
+
raw = await readFile(flags.proposal, 'utf8');
|
|
86
|
+
}
|
|
87
|
+
catch (err) {
|
|
88
|
+
throw new InvalidCaptureProposalError(flags.proposal, err instanceof Error ? err.message : String(err));
|
|
89
|
+
}
|
|
90
|
+
let proposal;
|
|
91
|
+
try {
|
|
92
|
+
proposal = (parseYaml(raw) ?? {});
|
|
93
|
+
}
|
|
94
|
+
catch (err) {
|
|
95
|
+
throw new InvalidCaptureProposalError(flags.proposal, err instanceof Error ? err.message : String(err));
|
|
96
|
+
}
|
|
97
|
+
const items = [];
|
|
98
|
+
for (const [index, item] of (proposal.notes ?? []).entries()) {
|
|
99
|
+
items.push(await applyNote(store, item.id ?? `notes[${index}]`, item));
|
|
100
|
+
}
|
|
101
|
+
for (const [index, item] of (proposal.world_facts ?? []).entries()) {
|
|
102
|
+
items.push(await applyIdentityDelta(store, item.id ?? `world_facts[${index}]`, 'world_facts', 'world-facts', item));
|
|
103
|
+
}
|
|
104
|
+
for (const [index, item] of (proposal.user_facts ?? []).entries()) {
|
|
105
|
+
items.push(await applyIdentityDelta(store, item.id ?? `user_facts[${index}]`, 'user_facts', 'user-facts', item));
|
|
106
|
+
}
|
|
107
|
+
const refused = items.filter((item) => item.outcome === 'refused');
|
|
108
|
+
const written = items.filter((item) => item.outcome === 'wrote' || item.outcome === 'appended');
|
|
109
|
+
return {
|
|
110
|
+
exitCode: refused.length > 0 ? ExitCode.CheckFailed : ExitCode.Ok,
|
|
111
|
+
data: { items },
|
|
112
|
+
findings: [],
|
|
113
|
+
humanSummary: `${written.length} item(s) written` +
|
|
114
|
+
(refused.length > 0 ? `; ${refused.length} refused: ${refused.map((item) => `${item.id} (${item.reason})`).join(', ')}` : '.'),
|
|
115
|
+
storeRoot: store.root,
|
|
116
|
+
schemaVersion: store.config.schema_version,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
//# sourceMappingURL=session-capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-capture.js","sourceRoot":"","sources":["../../src/commands/session-capture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,oBAAoB,EAAqB,MAAM,qBAAqB,CAAC;AAErH,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,MAAM,CAAC,MAAM,QAAQ,GAAoB,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC;AA0C/D;;;;;;GAMG;AACH,SAAS,UAAU,CAAC,WAAgD,EAAE,IAAY;IAChF,IAAI,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvE,OAAO,QAAQ,aAAa,CAAC,WAAW,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;AACzE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAY,EAAE,EAAU,EAAE,IAAc;IAC/D,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACrD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,mCAAmC,EAAE,CAAC;IAChH,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACvE,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;IACxF,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;IAExC,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,IAAI,MAAM;YAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,kCAAkC,EAAE,CAAC;QACzH,MAAM,WAAW,GAA4B,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACrE,IAAI,IAAI,CAAC,UAAU,KAAK,SAAS;YAAE,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;QACjG,MAAM,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7D,MAAM,eAAe,CAAC,YAAY,EAAE,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,8BAA8B,EAAE,CAAC;IACtH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9E,MAAM,eAAe,CAAC,YAAY,EAAE,GAAG,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3E,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACpE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,KAAY,EACZ,EAAU,EACV,IAAkC,EAClC,IAAkB,EAClB,IAAuB;IAEvB,IAAI,CAAC;QACH,IAAI,IAAI,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YAC1B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAC3E,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;YACrH,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACjG,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;YAChF,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;YACrF,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;QAC3D,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,mBAAoB,IAA2B,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;IACpG,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,KAAY,EAAE,KAA0B;IACpE,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,IAAI,QAAyB,CAAC;IAC9B,IAAI,CAAC;QACH,QAAQ,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,CAAoB,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,2BAA2B,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1G,CAAC;IAED,MAAM,KAAK,GAAwB,EAAE,CAAC;IACtC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC7D,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,SAAS,KAAK,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IACzE,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,eAAe,KAAK,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC,CAAC;IACtH,CAAC;IACD,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAClE,KAAK,CAAC,IAAI,CAAC,MAAM,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,IAAI,cAAc,KAAK,GAAG,EAAE,YAAY,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,CAAC;IACnH,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;IACnE,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,OAAO,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;IAEhG,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE;QACjE,IAAI,EAAE,EAAE,KAAK,EAAE;QACf,QAAQ,EAAE,EAAE;QACZ,YAAY,EACV,GAAG,OAAO,CAAC,MAAM,kBAAkB;YACnC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,aAAa,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;QAChI,SAAS,EAAE,KAAK,CAAC,IAAI;QACrB,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC,cAAc;KAC3C,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { MergeMethod } from '../adapters/forge/types.js';
|
|
2
|
+
import type { Adapter } from '../adapters/types.js';
|
|
3
|
+
import type { CommandOutcome, CommandRequires } from '../core/command.js';
|
|
4
|
+
import { type RunEnv } from '../core/env.js';
|
|
5
|
+
import type { Store } from '../core/store.js';
|
|
6
|
+
export declare const requires: CommandRequires;
|
|
7
|
+
export interface SessionLandFlags {
|
|
8
|
+
pr?: number;
|
|
9
|
+
branch?: string;
|
|
10
|
+
yes?: boolean;
|
|
11
|
+
mergeMethod?: MergeMethod;
|
|
12
|
+
reap?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface SyncOutcome {
|
|
15
|
+
attempted: boolean;
|
|
16
|
+
synced: boolean;
|
|
17
|
+
reason?: string;
|
|
18
|
+
}
|
|
19
|
+
export interface ReapOutcome {
|
|
20
|
+
attempted: boolean;
|
|
21
|
+
reaped: boolean;
|
|
22
|
+
reason?: string;
|
|
23
|
+
}
|
|
24
|
+
export interface SessionLandData {
|
|
25
|
+
branch: string;
|
|
26
|
+
pr: {
|
|
27
|
+
number: number;
|
|
28
|
+
url: string;
|
|
29
|
+
title: string;
|
|
30
|
+
state: string;
|
|
31
|
+
mergeable: string;
|
|
32
|
+
};
|
|
33
|
+
gate: 'confirmed' | 'declined' | 'not_required';
|
|
34
|
+
merged: boolean;
|
|
35
|
+
sync: SyncOutcome;
|
|
36
|
+
reap: ReapOutcome;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* session-submit-and-land spec (D1): every step re-reads live state (the
|
|
40
|
+
* pull request's state, the root checkout's branch, the worktree list), so
|
|
41
|
+
* a retry after a partial failure is just running the command again — it
|
|
42
|
+
* naturally skips whatever already happened rather than replaying it.
|
|
43
|
+
*/
|
|
44
|
+
export declare function execute(env: RunEnv, store: Store, flags: SessionLandFlags, registry?: readonly Adapter[]): Promise<CommandOutcome<SessionLandData>>;
|
|
45
|
+
//# sourceMappingURL=session-land.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-land.d.ts","sourceRoot":"","sources":["../../src/commands/session-land.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAoB,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAGhF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAiB,KAAK,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAe5D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACrF,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,cAAc,CAAC;IAChD,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;IAClB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,gBAAgB,EACvB,QAAQ,GAAE,SAAS,OAAO,EAAqB,GAC9C,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CA4D1C"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import path from 'node:path';
|
|
2
|
+
import { configuredAdapters } from '../adapters/registry.js';
|
|
3
|
+
import { BUILTIN_ADAPTERS } from '../adapters/builtin/index.js';
|
|
4
|
+
import { isInteractive } from '../core/env.js';
|
|
5
|
+
import { MergeNotConfirmedError, NoForgeConfiguredError, PullRequestClosedError, PullRequestHeadMismatchError, PullRequestNotMergeableError, SessionLandConsentRequiredError, SessionLandOnDefaultBranchError, } from '../core/errors.js';
|
|
6
|
+
import { ExitCode } from '../core/exit-codes.js';
|
|
7
|
+
import { currentBranch } from '../core/git/repo.js';
|
|
8
|
+
import { fetchOrigin, listWorktrees, removeWorktree, deleteBranch, hasRemote } from '../core/git/worktree.js';
|
|
9
|
+
import { isWorkingTreeClean } from '../core/git/repo.js';
|
|
10
|
+
import { isSessionBranch, isSessionWorktreePath } from '../core/session.js';
|
|
11
|
+
export const requires = { store: 'required' };
|
|
12
|
+
/**
|
|
13
|
+
* session-submit-and-land spec (D1): every step re-reads live state (the
|
|
14
|
+
* pull request's state, the root checkout's branch, the worktree list), so
|
|
15
|
+
* a retry after a partial failure is just running the command again — it
|
|
16
|
+
* naturally skips whatever already happened rather than replaying it.
|
|
17
|
+
*/
|
|
18
|
+
export async function execute(env, store, flags, registry = BUILTIN_ADAPTERS) {
|
|
19
|
+
// D1 / the non-interactive-consent scenario: fails before reading or
|
|
20
|
+
// changing anything on the forge — checked first, before any git or
|
|
21
|
+
// network call at all.
|
|
22
|
+
if (!flags.yes && !isInteractive(env)) {
|
|
23
|
+
throw new SessionLandConsentRequiredError();
|
|
24
|
+
}
|
|
25
|
+
const defaultBranch = store.config.git.default_branch;
|
|
26
|
+
const branch = flags.branch ?? (await currentBranch(env.git, store.root));
|
|
27
|
+
if (branch === defaultBranch) {
|
|
28
|
+
throw new SessionLandOnDefaultBranchError(branch);
|
|
29
|
+
}
|
|
30
|
+
const [forgeAdapter] = configuredAdapters(store.config, 'forge', registry);
|
|
31
|
+
if (!forgeAdapter || !(await forgeAdapter.isAvailable(store.root))) {
|
|
32
|
+
throw new NoForgeConfiguredError();
|
|
33
|
+
}
|
|
34
|
+
const ref = flags.pr !== undefined ? String(flags.pr) : branch;
|
|
35
|
+
let pr = await forgeAdapter.pullRequest(store.root, ref);
|
|
36
|
+
if (pr.headBranch !== branch) {
|
|
37
|
+
throw new PullRequestHeadMismatchError(branch, pr.headBranch);
|
|
38
|
+
}
|
|
39
|
+
let merged = pr.state === 'merged';
|
|
40
|
+
let gate = 'not_required';
|
|
41
|
+
if (pr.state === 'closed') {
|
|
42
|
+
throw new PullRequestClosedError(pr.number);
|
|
43
|
+
}
|
|
44
|
+
if (pr.state === 'open') {
|
|
45
|
+
if (pr.mergeable === 'unknown') {
|
|
46
|
+
pr = await forgeAdapter.pullRequest(store.root, ref); // D1: re-query once before stopping
|
|
47
|
+
}
|
|
48
|
+
if (pr.mergeable === 'conflicting' || pr.mergeable === 'unknown') {
|
|
49
|
+
throw new PullRequestNotMergeableError(pr.number, pr.mergeable);
|
|
50
|
+
}
|
|
51
|
+
// pr.mergeable === 'mergeable' from here on.
|
|
52
|
+
const confirmed = flags.yes ? true : await env.prompter.confirm({ message: gateMessage(pr) });
|
|
53
|
+
gate = confirmed ? 'confirmed' : 'declined';
|
|
54
|
+
if (!confirmed) {
|
|
55
|
+
return outcome(store, branch, pr, gate, false, { attempted: false, synced: false }, { attempted: false, reaped: false });
|
|
56
|
+
}
|
|
57
|
+
await forgeAdapter.mergePullRequest(store.root, pr.number, flags.mergeMethod ?? 'squash');
|
|
58
|
+
const after = await forgeAdapter.pullRequest(store.root, ref);
|
|
59
|
+
if (after.state !== 'merged') {
|
|
60
|
+
throw new MergeNotConfirmedError(pr.number);
|
|
61
|
+
}
|
|
62
|
+
pr = after;
|
|
63
|
+
merged = true;
|
|
64
|
+
}
|
|
65
|
+
const sync = await syncRootCheckout(env, store, defaultBranch);
|
|
66
|
+
const reap = await reapWorktree(env, store, branch, flags.reap ?? false);
|
|
67
|
+
return outcome(store, branch, pr, gate, merged, sync, reap);
|
|
68
|
+
}
|
|
69
|
+
function gateMessage(pr) {
|
|
70
|
+
return `PR #${pr.number} "${pr.title}" (${pr.url}) — OPEN, MERGEABLE. Merge?`;
|
|
71
|
+
}
|
|
72
|
+
/** D2: fast-forward only, in whatever checkout this command runs from — never checked out, reset, or discarded. */
|
|
73
|
+
async function syncRootCheckout(env, store, defaultBranch) {
|
|
74
|
+
const branch = await currentBranch(env.git, store.root);
|
|
75
|
+
if (branch !== defaultBranch) {
|
|
76
|
+
return { attempted: false, synced: false, reason: 'root checkout is not on the default branch' };
|
|
77
|
+
}
|
|
78
|
+
if (!(await hasRemote(env.git, store.root))) {
|
|
79
|
+
return { attempted: false, synced: false, reason: 'no remote configured' };
|
|
80
|
+
}
|
|
81
|
+
const fetched = await fetchOrigin(env.git, store.root, defaultBranch);
|
|
82
|
+
if (!fetched) {
|
|
83
|
+
return { attempted: true, synced: false, reason: 'fetch failed' };
|
|
84
|
+
}
|
|
85
|
+
const merge = await env.git.run(['merge', '--ff-only', `origin/${defaultBranch}`], { cwd: store.root, allowFailure: true });
|
|
86
|
+
if (merge.exitCode !== 0) {
|
|
87
|
+
return { attempted: true, synced: false, reason: 'cannot fast-forward (diverged from origin)' };
|
|
88
|
+
}
|
|
89
|
+
return { attempted: true, synced: true };
|
|
90
|
+
}
|
|
91
|
+
/** D3: opt-in, and scoped to a worktree `session start` made — never the one this command is currently running from. */
|
|
92
|
+
async function reapWorktree(env, store, branch, requested) {
|
|
93
|
+
if (!requested) {
|
|
94
|
+
return { attempted: false, reaped: false, reason: 'pass --reap, or run `ctxr session reap`' };
|
|
95
|
+
}
|
|
96
|
+
const worktrees = await listWorktrees(env.git, store.root);
|
|
97
|
+
const target = worktrees.find((w) => w.branch === branch);
|
|
98
|
+
if (!target) {
|
|
99
|
+
return { attempted: true, reaped: false, reason: 'no worktree found for this branch' };
|
|
100
|
+
}
|
|
101
|
+
if (!isSessionBranch(store.config, branch) && !isSessionWorktreePath(store.config, target.path)) {
|
|
102
|
+
return { attempted: true, reaped: false, reason: 'not a session worktree' };
|
|
103
|
+
}
|
|
104
|
+
if (path.resolve(target.path) === path.resolve(store.root)) {
|
|
105
|
+
return {
|
|
106
|
+
attempted: true,
|
|
107
|
+
reaped: false,
|
|
108
|
+
reason: 'cannot remove the worktree this command is currently running from; run `ctxr session reap` from elsewhere',
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
if (!(await isWorkingTreeClean(env.git, target.path))) {
|
|
112
|
+
return { attempted: true, reaped: false, reason: 'worktree has uncommitted changes' };
|
|
113
|
+
}
|
|
114
|
+
await removeWorktree(env.git, store.root, target.path);
|
|
115
|
+
await deleteBranch(env.git, store.root, branch);
|
|
116
|
+
return { attempted: true, reaped: true };
|
|
117
|
+
}
|
|
118
|
+
function outcome(store, branch, pr, gate, merged, sync, reap) {
|
|
119
|
+
const summary = gate === 'declined'
|
|
120
|
+
? `Merge declined for PR #${pr.number}; nothing landed.`
|
|
121
|
+
: `PR #${pr.number} ${merged ? 'merged' : 'not merged'}` +
|
|
122
|
+
`; sync ${sync.synced ? 'ok' : sync.attempted ? 'skipped: ' + sync.reason : 'not attempted'}` +
|
|
123
|
+
`; reap ${reap.reaped ? 'ok' : reap.attempted ? 'skipped: ' + reap.reason : 'not attempted'}.`;
|
|
124
|
+
return {
|
|
125
|
+
exitCode: ExitCode.Ok,
|
|
126
|
+
data: {
|
|
127
|
+
branch,
|
|
128
|
+
pr: { number: pr.number, url: pr.url, title: pr.title, state: pr.state, mergeable: pr.mergeable },
|
|
129
|
+
gate,
|
|
130
|
+
merged,
|
|
131
|
+
sync,
|
|
132
|
+
reap,
|
|
133
|
+
},
|
|
134
|
+
findings: [],
|
|
135
|
+
humanSummary: summary,
|
|
136
|
+
storeRoot: store.root,
|
|
137
|
+
schemaVersion: store.config.schema_version,
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
//# sourceMappingURL=session-land.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-land.js","sourceRoot":"","sources":["../../src/commands/session-land.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-list.d.ts","sourceRoot":"","sources":["../../src/commands/session-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"session-list.d.ts","sourceRoot":"","sources":["../../src/commands/session-list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAI7C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,eAAO,MAAM,QAAQ,EAAE,eAAuC,CAAC;AAE/D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,cAAc,CAAC,eAAe,CAAC,CAAC,CAkBjG"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { ExitCode } from '../core/exit-codes.js';
|
|
2
2
|
import { listWorktrees } from '../core/git/worktree.js';
|
|
3
|
-
import { isSessionBranch } from '../core/session.js';
|
|
3
|
+
import { isSessionBranch, isSessionWorktreePath } from '../core/session.js';
|
|
4
4
|
export const requires = { store: 'required' };
|
|
5
5
|
export async function execute(env, store) {
|
|
6
6
|
const worktrees = await listWorktrees(env.git, store.root);
|
|
7
7
|
const sessions = worktrees
|
|
8
|
-
.filter((w) => w.branch !== null &&
|
|
8
|
+
.filter((w) => w.branch !== null &&
|
|
9
|
+
(isSessionBranch(store.config, w.branch) || isSessionWorktreePath(store.config, w.path)))
|
|
9
10
|
.map((w) => ({ branch: w.branch, worktree: w.path, head: w.head }));
|
|
10
11
|
return {
|
|
11
12
|
exitCode: ExitCode.Ok,
|