@fleetagent/pi-coding-agent 0.0.1 → 0.0.2
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/CHANGELOG.md +16 -0
- package/dist/core/agent-session.d.ts +5 -5
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +8 -11
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/compaction/branch-summarization.d.ts +2 -2
- package/dist/core/compaction/branch-summarization.d.ts.map +1 -1
- package/dist/core/compaction/branch-summarization.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +2 -2
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +3 -3
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +5 -5
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +15 -8
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/footer-data-provider.d.ts +1 -1
- package/dist/core/footer-data-provider.d.ts.map +1 -1
- package/dist/core/footer-data-provider.js +1 -1
- package/dist/core/footer-data-provider.js.map +1 -1
- package/dist/core/pi-agent.d.ts +5 -3
- package/dist/core/pi-agent.d.ts.map +1 -1
- package/dist/core/pi-agent.js +64 -18
- package/dist/core/pi-agent.js.map +1 -1
- package/dist/core/session/in-memory-session-manager.d.ts.map +1 -1
- package/dist/core/session/in-memory-session-manager.js +5 -7
- package/dist/core/session/in-memory-session-manager.js.map +1 -1
- package/dist/core/session/in-memory-session.d.ts +3 -1
- package/dist/core/session/in-memory-session.d.ts.map +1 -1
- package/dist/core/session/in-memory-session.js +5 -2
- package/dist/core/session/in-memory-session.js.map +1 -1
- package/dist/core/session/index.d.ts +2 -2
- package/dist/core/session/index.d.ts.map +1 -1
- package/dist/core/session/index.js.map +1 -1
- package/dist/core/session/jsonl-helpers.d.ts.map +1 -1
- package/dist/core/session/jsonl-helpers.js +4 -4
- package/dist/core/session/jsonl-helpers.js.map +1 -1
- package/dist/core/session/local-session-manager.d.ts.map +1 -1
- package/dist/core/session/local-session-manager.js +12 -11
- package/dist/core/session/local-session-manager.js.map +1 -1
- package/dist/core/session/local-session.d.ts +3 -1
- package/dist/core/session/local-session.d.ts.map +1 -1
- package/dist/core/session/local-session.js +7 -2
- package/dist/core/session/local-session.js.map +1 -1
- package/dist/core/session/remote-session-client.d.ts +6 -1
- package/dist/core/session/remote-session-client.d.ts.map +1 -1
- package/dist/core/session/remote-session-client.js.map +1 -1
- package/dist/core/session/remote-session-manager.d.ts.map +1 -1
- package/dist/core/session/remote-session-manager.js +28 -7
- package/dist/core/session/remote-session-manager.js.map +1 -1
- package/dist/core/session/remote-session.d.ts +3 -0
- package/dist/core/session/remote-session.d.ts.map +1 -1
- package/dist/core/session/remote-session.js +4 -1
- package/dist/core/session/remote-session.js.map +1 -1
- package/dist/core/session/session.d.ts +9 -3
- package/dist/core/session/session.d.ts.map +1 -1
- package/dist/core/session/session.js +64 -10
- package/dist/core/session/session.js.map +1 -1
- package/dist/core/session/stores/in-memory-session-store.d.ts +6 -14
- package/dist/core/session/stores/in-memory-session-store.d.ts.map +1 -1
- package/dist/core/session/stores/in-memory-session-store.js +8 -34
- package/dist/core/session/stores/in-memory-session-store.js.map +1 -1
- package/dist/core/session/stores/jsonl-session-store.d.ts +14 -14
- package/dist/core/session/stores/jsonl-session-store.d.ts.map +1 -1
- package/dist/core/session/stores/jsonl-session-store.js +153 -162
- package/dist/core/session/stores/jsonl-session-store.js.map +1 -1
- package/dist/core/session/stores/remote-session-store.d.ts +4 -6
- package/dist/core/session/stores/remote-session-store.d.ts.map +1 -1
- package/dist/core/session/stores/remote-session-store.js +18 -30
- package/dist/core/session/stores/remote-session-store.js.map +1 -1
- package/dist/core/session/stores/session-store.d.ts +1 -15
- package/dist/core/session/stores/session-store.d.ts.map +1 -1
- package/dist/core/session/stores/session-store.js.map +1 -1
- package/dist/core/session-cwd.d.ts +2 -2
- package/dist/core/session-cwd.d.ts.map +1 -1
- package/dist/core/session-cwd.js +5 -5
- package/dist/core/session-cwd.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +39 -37
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/docs/extensions.md +35 -32
- package/docs/index.md +1 -1
- package/docs/sdk.md +2 -0
- package/docs/session-format.md +21 -21
- package/docs/sessions.md +2 -2
- package/docs/tui.md +1 -1
- package/examples/README.md +3 -0
- package/examples/extensions/README.md +1 -1
- package/examples/extensions/auto-commit-on-exit.ts +1 -1
- package/examples/extensions/bookmark.ts +3 -3
- package/examples/extensions/confirm-destructive.ts +1 -1
- package/examples/extensions/custom-compaction.ts +1 -1
- package/examples/extensions/custom-footer.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/git-checkpoint.ts +1 -1
- package/examples/extensions/handoff.ts +2 -2
- package/examples/extensions/plan-mode/index.ts +1 -1
- package/examples/extensions/preset.ts +1 -1
- package/examples/extensions/qna.ts +1 -1
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/snake.ts +1 -1
- package/examples/extensions/space-invaders.ts +1 -1
- package/examples/extensions/summarize.ts +1 -1
- package/examples/extensions/tic-tac-toe.ts +1 -1
- package/examples/extensions/todo.ts +1 -1
- package/examples/extensions/tools.ts +1 -1
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/remote-session-server/README.md +66 -0
- package/examples/remote-session-server/server.ts +359 -0
- package/examples/sdk/11-sessions.ts +3 -3
- package/examples/sdk/13-session-runtime.ts +6 -6
- package/npm-shrinkwrap.json +12 -12
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remote-session-store.js","sourceRoot":"","sources":["../../../../src/core/session/stores/remote-session-store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEjG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"remote-session-store.js","sourceRoot":"","sources":["../../../../src/core/session/stores/remote-session-store.ts"],"names":[],"mappings":"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","sourcesContent":["import type { RemoteSessionClient, RemoteSessionSnapshot } from \"../remote-session-client.ts\";\nimport { formatRemoteSessionReference, parseRemoteSessionId } from \"../remote-session-client.ts\";\nimport type { FileEntry, SessionEntry } from \"../types.ts\";\nimport { InMemorySessionStore } from \"./in-memory-session-store.ts\";\n\nexport interface RemoteSessionStoreOptions {\n\tclient: RemoteSessionClient;\n\treference?: string;\n\tsnapshot?: RemoteSessionSnapshot;\n}\n\nfunction getSnapshotReference(snapshot: RemoteSessionSnapshot): string {\n\treturn snapshot.reference || formatRemoteSessionReference(snapshot.id);\n}\n\n/**\n * Remote session store.\n *\n * The active session state is kept in memory for synchronous Session access.\n * Mutations are serialized to the remote service in the background, and\n * snapshots fetched by RemoteSessionManager are used to hydrate the store before\n * Session starts reading from it.\n */\nexport class RemoteSessionStore extends InMemorySessionStore {\n\tprivate readonly client: RemoteSessionClient;\n\tprivate reference: string | undefined;\n\tprivate etag: string | undefined;\n\tprivate pendingSync: Promise<void> = Promise.resolve();\n\tprivate dirtyEntries: FileEntry[] = [];\n\tprivate lastSyncError: unknown;\n\tprivate snapshot: RemoteSessionSnapshot | undefined;\n\n\tconstructor(options: RemoteSessionStoreOptions) {\n\t\tsuper();\n\t\tthis.client = options.client;\n\t\tthis.snapshot = options.snapshot;\n\t\tthis.reference = options.reference ?? (options.snapshot ? getSnapshotReference(options.snapshot) : undefined);\n\t\tthis.etag = options.snapshot?.etag;\n\t}\n\n\toverride isPersisted(): boolean {\n\t\treturn true;\n\t}\n\n\toverride getSessionReference(): string | undefined {\n\t\treturn this.reference;\n\t}\n\n\toverride setSessionReference(reference: string): void {\n\t\tthis.reference = formatRemoteSessionReference(parseRemoteSessionId(reference));\n\t}\n\n\toverride exists(reference: string): boolean {\n\t\tif (!this.snapshot) return false;\n\t\tconst snapshotReference = getSnapshotReference(this.snapshot);\n\t\treturn parseRemoteSessionId(reference) === parseRemoteSessionId(snapshotReference);\n\t}\n\n\toverride load(reference: string): FileEntry[] {\n\t\tif (!this.snapshot || !this.exists(reference)) return [];\n\t\tthis.reference = getSnapshotReference(this.snapshot);\n\t\tthis.etag = this.snapshot.etag;\n\t\tconst entries = [...this.snapshot.entries];\n\t\tthis.snapshot = undefined;\n\t\treturn entries;\n\t}\n\n\toverride appendEntry(entry: SessionEntry): void {\n\t\tsuper.appendEntry(entry);\n\t\tthis.queueAppend([entry]);\n\t}\n\n\toverride saveSnapshot(): void {\n\t\tthis.queueReplaceSnapshot();\n\t}\n\n\toverride commitSnapshot(): void {\n\t\tthis.queueReplaceSnapshot();\n\t}\n\n\tasync flushPendingSync(): Promise<void> {\n\t\tawait this.pendingSync;\n\t\tif (this.lastSyncError) {\n\t\t\tthrow this.lastSyncError;\n\t\t}\n\t}\n\n\tgetLastSyncError(): unknown {\n\t\treturn this.lastSyncError;\n\t}\n\n\tprivate queueAppend(entries: FileEntry[]): void {\n\t\tthis.dirtyEntries.push(...entries);\n\t\tthis.pendingSync = this.pendingSync\n\t\t\t.then(() => this.flushDirtyEntries())\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tthis.lastSyncError = error;\n\t\t\t});\n\t}\n\n\tprivate queueReplaceSnapshot(): void {\n\t\tthis.pendingSync = this.pendingSync\n\t\t\t.then(() => this.replaceSnapshot())\n\t\t\t.catch((error: unknown) => {\n\t\t\t\tthis.lastSyncError = error;\n\t\t\t});\n\t}\n\n\tprivate async flushDirtyEntries(): Promise<void> {\n\t\tif (!this.reference || this.dirtyEntries.length === 0) return;\n\t\tconst entries = [...this.dirtyEntries];\n\t\tconst response = await this.client.appendEntries(this.reference, {\n\t\t\tbaseEtag: this.etag,\n\t\t\tentries,\n\t\t});\n\t\tthis.etag = response.etag ?? this.etag;\n\t\tthis.lastSyncError = undefined;\n\n\t\tconst accepted = Math.max(0, Math.min(response.accepted, entries.length));\n\t\tthis.dirtyEntries = this.dirtyEntries.slice(accepted);\n\t}\n\n\tprivate async replaceSnapshot(): Promise<void> {\n\t\tif (!this.reference) return;\n\n\t\tconst response = await this.client.replaceSnapshot(this.reference, {\n\t\t\tbaseEtag: this.etag,\n\t\t\tentries: this.getFileEntries(),\n\t\t});\n\t\tthis.etag = response.etag ?? this.etag;\n\t\tthis.dirtyEntries = [];\n\t\tthis.lastSyncError = undefined;\n\t}\n}\n"]}
|
|
@@ -1,25 +1,11 @@
|
|
|
1
|
-
import type { FileEntry, SessionEntry, SessionHeader,
|
|
2
|
-
export interface SessionOpenResult {
|
|
3
|
-
reference: string;
|
|
4
|
-
exists: boolean;
|
|
5
|
-
entries: FileEntry[];
|
|
6
|
-
}
|
|
1
|
+
import type { FileEntry, SessionEntry, SessionHeader, SessionTreeNode } from "../types.ts";
|
|
7
2
|
export interface SessionStore {
|
|
8
3
|
isPersisted(): boolean;
|
|
9
4
|
getSessionReference(): string | undefined;
|
|
10
5
|
setSessionReference(reference: string): void;
|
|
11
|
-
openSession(reference: string): SessionOpenResult;
|
|
12
|
-
getSessionDirForReference(reference: string): string;
|
|
13
|
-
getDefaultSessionDir(cwd: string, agentDir?: string): string;
|
|
14
|
-
getSessionsRoot(): string;
|
|
15
|
-
prepareSessionReference(sessionDir: string, sessionId: string, timestamp: string): string | undefined;
|
|
16
|
-
getParentSessionReference(): string | undefined;
|
|
17
6
|
exists(path: string): boolean;
|
|
18
7
|
ensureDir(path: string): void;
|
|
19
8
|
load(filePath: string): FileEntry[];
|
|
20
|
-
findMostRecent(sessionDir: string): string | null;
|
|
21
|
-
list(dir: string, onProgress?: SessionListProgress): Promise<SessionInfo[]>;
|
|
22
|
-
listAll(sessionsDir: string, onProgress?: SessionListProgress): Promise<SessionInfo[]>;
|
|
23
9
|
setEntries(entries: FileEntry[]): void;
|
|
24
10
|
getFileEntries(): FileEntry[];
|
|
25
11
|
getHeader(): SessionHeader | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../../src/core/session/stores/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../../src/core/session/stores/session-store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE3F,MAAM,WAAW,YAAY;IAC5B,WAAW,IAAI,OAAO,CAAC;IACvB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAAC;IAC1C,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,CAAC;IACpC,UAAU,CAAC,OAAO,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC;IACvC,cAAc,IAAI,SAAS,EAAE,CAAC;IAC9B,SAAS,IAAI,aAAa,GAAG,IAAI,CAAC;IAClC,UAAU,IAAI,YAAY,EAAE,CAAC;IAC7B,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC3C,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IACzB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAAC;IACvC,YAAY,IAAI,IAAI,CAAC;IACrB,cAAc,IAAI,IAAI,CAAC;IACvB,SAAS,IAAI,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IACvC,YAAY,IAAI,YAAY,GAAG,SAAS,CAAC;IACzC,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACzC,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC;IAC3C,OAAO,IAAI,eAAe,EAAE,CAAC;IAC7B,cAAc,IAAI,MAAM,GAAG,SAAS,CAAC;IACrC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC3G,mBAAmB,IAAI,OAAO,CAAC;CAC/B","sourcesContent":["import type { FileEntry, SessionEntry, SessionHeader, SessionTreeNode } from \"../types.ts\";\n\nexport interface SessionStore {\n\tisPersisted(): boolean;\n\tgetSessionReference(): string | undefined;\n\tsetSessionReference(reference: string): void;\n\texists(path: string): boolean;\n\tensureDir(path: string): void;\n\tload(filePath: string): FileEntry[];\n\tsetEntries(entries: FileEntry[]): void;\n\tgetFileEntries(): FileEntry[];\n\tgetHeader(): SessionHeader | null;\n\tgetEntries(): SessionEntry[];\n\tgetEntryIndex(): Map<string, SessionEntry>;\n\thas(id: string): boolean;\n\tappendEntry(entry: SessionEntry): void;\n\tsaveSnapshot(): void;\n\tcommitSnapshot(): void;\n\tgetLeafId(): string | null;\n\tsetLeafId(leafId: string | null): void;\n\tgetLeafEntry(): SessionEntry | undefined;\n\tgetEntry(id: string): SessionEntry | undefined;\n\tgetChildren(parentId: string): SessionEntry[];\n\tgetLabel(id: string): string | undefined;\n\tgetBranch(fromId?: string): SessionEntry[];\n\tgetTree(): SessionTreeNode[];\n\tgetSessionName(): string | undefined;\n\tgetLabelsForEntryIds(entryIds: Set<string>): Array<{ targetId: string; label: string; timestamp: string }>;\n\thasAssistantMessage(): boolean;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../../src/core/session/stores/session-store.ts"],"names":[],"mappings":"","sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"session-store.js","sourceRoot":"","sources":["../../../../src/core/session/stores/session-store.ts"],"names":[],"mappings":"","sourcesContent":["import type { FileEntry, SessionEntry, SessionHeader, SessionTreeNode } from \"../types.ts\";\n\nexport interface SessionStore {\n\tisPersisted(): boolean;\n\tgetSessionReference(): string | undefined;\n\tsetSessionReference(reference: string): void;\n\texists(path: string): boolean;\n\tensureDir(path: string): void;\n\tload(filePath: string): FileEntry[];\n\tsetEntries(entries: FileEntry[]): void;\n\tgetFileEntries(): FileEntry[];\n\tgetHeader(): SessionHeader | null;\n\tgetEntries(): SessionEntry[];\n\tgetEntryIndex(): Map<string, SessionEntry>;\n\thas(id: string): boolean;\n\tappendEntry(entry: SessionEntry): void;\n\tsaveSnapshot(): void;\n\tcommitSnapshot(): void;\n\tgetLeafId(): string | null;\n\tsetLeafId(leafId: string | null): void;\n\tgetLeafEntry(): SessionEntry | undefined;\n\tgetEntry(id: string): SessionEntry | undefined;\n\tgetChildren(parentId: string): SessionEntry[];\n\tgetLabel(id: string): string | undefined;\n\tgetBranch(fromId?: string): SessionEntry[];\n\tgetTree(): SessionTreeNode[];\n\tgetSessionName(): string | undefined;\n\tgetLabelsForEntryIds(entryIds: Set<string>): Array<{ targetId: string; label: string; timestamp: string }>;\n\thasAssistantMessage(): boolean;\n}\n"]}
|
|
@@ -7,13 +7,13 @@ interface SessionCwdSource {
|
|
|
7
7
|
getCwd(): string;
|
|
8
8
|
getSessionReference(): string | undefined;
|
|
9
9
|
}
|
|
10
|
-
export declare function getMissingSessionCwdIssue(
|
|
10
|
+
export declare function getMissingSessionCwdIssue(session: SessionCwdSource, fallbackCwd: string): SessionCwdIssue | undefined;
|
|
11
11
|
export declare function formatMissingSessionCwdError(issue: SessionCwdIssue): string;
|
|
12
12
|
export declare function formatMissingSessionCwdPrompt(issue: SessionCwdIssue): string;
|
|
13
13
|
export declare class MissingSessionCwdError extends Error {
|
|
14
14
|
readonly issue: SessionCwdIssue;
|
|
15
15
|
constructor(issue: SessionCwdIssue);
|
|
16
16
|
}
|
|
17
|
-
export declare function assertSessionCwdExists(
|
|
17
|
+
export declare function assertSessionCwdExists(session: SessionCwdSource, fallbackCwd: string): void;
|
|
18
18
|
export {};
|
|
19
19
|
//# sourceMappingURL=session-cwd.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cwd.d.ts","sourceRoot":"","sources":["../../src/core/session-cwd.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAgB;IACzB,MAAM,IAAI,MAAM,CAAC;IACjB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"session-cwd.d.ts","sourceRoot":"","sources":["../../src/core/session-cwd.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAgB;IACzB,MAAM,IAAI,MAAM,CAAC;IACjB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAAC;CAC1C;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAgBrH;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAG3E;AAED,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAE5E;AAED,qBAAa,sBAAuB,SAAQ,KAAK;IAChD,QAAQ,CAAC,KAAK,EAAE,eAAe,CAAC;IAEhC,YAAY,KAAK,EAAE,eAAe,EAIjC;CACD;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAK3F","sourcesContent":["import { existsSync } from \"node:fs\";\n\nexport interface SessionCwdIssue {\n\tsessionReference?: string;\n\tsessionCwd: string;\n\tfallbackCwd: string;\n}\n\ninterface SessionCwdSource {\n\tgetCwd(): string;\n\tgetSessionReference(): string | undefined;\n}\n\nexport function getMissingSessionCwdIssue(session: SessionCwdSource, fallbackCwd: string): SessionCwdIssue | undefined {\n\tconst sessionReference = session.getSessionReference();\n\tif (!sessionReference) {\n\t\treturn undefined;\n\t}\n\n\tconst sessionCwd = session.getCwd();\n\tif (!sessionCwd || existsSync(sessionCwd)) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tsessionReference,\n\t\tsessionCwd,\n\t\tfallbackCwd,\n\t};\n}\n\nexport function formatMissingSessionCwdError(issue: SessionCwdIssue): string {\n\tconst sessionReference = issue.sessionReference ? `\\nSession reference: ${issue.sessionReference}` : \"\";\n\treturn `Stored session working directory does not exist: ${issue.sessionCwd}${sessionReference}\\nCurrent working directory: ${issue.fallbackCwd}`;\n}\n\nexport function formatMissingSessionCwdPrompt(issue: SessionCwdIssue): string {\n\treturn `cwd from session does not exist\\n${issue.sessionCwd}\\n\\ncontinue in current cwd\\n${issue.fallbackCwd}`;\n}\n\nexport class MissingSessionCwdError extends Error {\n\treadonly issue: SessionCwdIssue;\n\n\tconstructor(issue: SessionCwdIssue) {\n\t\tsuper(formatMissingSessionCwdError(issue));\n\t\tthis.name = \"MissingSessionCwdError\";\n\t\tthis.issue = issue;\n\t}\n}\n\nexport function assertSessionCwdExists(session: SessionCwdSource, fallbackCwd: string): void {\n\tconst issue = getMissingSessionCwdIssue(session, fallbackCwd);\n\tif (issue) {\n\t\tthrow new MissingSessionCwdError(issue);\n\t}\n}\n"]}
|
package/dist/core/session-cwd.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
-
export function getMissingSessionCwdIssue(
|
|
3
|
-
const sessionReference =
|
|
2
|
+
export function getMissingSessionCwdIssue(session, fallbackCwd) {
|
|
3
|
+
const sessionReference = session.getSessionReference();
|
|
4
4
|
if (!sessionReference) {
|
|
5
5
|
return undefined;
|
|
6
6
|
}
|
|
7
|
-
const sessionCwd =
|
|
7
|
+
const sessionCwd = session.getCwd();
|
|
8
8
|
if (!sessionCwd || existsSync(sessionCwd)) {
|
|
9
9
|
return undefined;
|
|
10
10
|
}
|
|
@@ -29,8 +29,8 @@ export class MissingSessionCwdError extends Error {
|
|
|
29
29
|
this.issue = issue;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
|
-
export function assertSessionCwdExists(
|
|
33
|
-
const issue = getMissingSessionCwdIssue(
|
|
32
|
+
export function assertSessionCwdExists(session, fallbackCwd) {
|
|
33
|
+
const issue = getMissingSessionCwdIssue(session, fallbackCwd);
|
|
34
34
|
if (issue) {
|
|
35
35
|
throw new MissingSessionCwdError(issue);
|
|
36
36
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-cwd.js","sourceRoot":"","sources":["../../src/core/session-cwd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAarC,MAAM,UAAU,yBAAyB,
|
|
1
|
+
{"version":3,"file":"session-cwd.js","sourceRoot":"","sources":["../../src/core/session-cwd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAarC,MAAM,UAAU,yBAAyB,CAAC,OAAyB,EAAE,WAAmB,EAA+B;IACtH,MAAM,gBAAgB,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IACvD,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IACpC,IAAI,CAAC,UAAU,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,SAAS,CAAC;IAClB,CAAC;IAED,OAAO;QACN,gBAAgB;QAChB,UAAU;QACV,WAAW;KACX,CAAC;AAAA,CACF;AAED,MAAM,UAAU,4BAA4B,CAAC,KAAsB,EAAU;IAC5E,MAAM,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,wBAAwB,KAAK,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,OAAO,oDAAoD,KAAK,CAAC,UAAU,GAAG,gBAAgB,gCAAgC,KAAK,CAAC,WAAW,EAAE,CAAC;AAAA,CAClJ;AAED,MAAM,UAAU,6BAA6B,CAAC,KAAsB,EAAU;IAC7E,OAAO,oCAAoC,KAAK,CAAC,UAAU,gCAAgC,KAAK,CAAC,WAAW,EAAE,CAAC;AAAA,CAC/G;AAED,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IACvC,KAAK,CAAkB;IAEhC,YAAY,KAAsB,EAAE;QACnC,KAAK,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IAAA,CACnB;CACD;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAyB,EAAE,WAAmB,EAAQ;IAC5F,MAAM,KAAK,GAAG,yBAAyB,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IAC9D,IAAI,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzC,CAAC;AAAA,CACD","sourcesContent":["import { existsSync } from \"node:fs\";\n\nexport interface SessionCwdIssue {\n\tsessionReference?: string;\n\tsessionCwd: string;\n\tfallbackCwd: string;\n}\n\ninterface SessionCwdSource {\n\tgetCwd(): string;\n\tgetSessionReference(): string | undefined;\n}\n\nexport function getMissingSessionCwdIssue(session: SessionCwdSource, fallbackCwd: string): SessionCwdIssue | undefined {\n\tconst sessionReference = session.getSessionReference();\n\tif (!sessionReference) {\n\t\treturn undefined;\n\t}\n\n\tconst sessionCwd = session.getCwd();\n\tif (!sessionCwd || existsSync(sessionCwd)) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\tsessionReference,\n\t\tsessionCwd,\n\t\tfallbackCwd,\n\t};\n}\n\nexport function formatMissingSessionCwdError(issue: SessionCwdIssue): string {\n\tconst sessionReference = issue.sessionReference ? `\\nSession reference: ${issue.sessionReference}` : \"\";\n\treturn `Stored session working directory does not exist: ${issue.sessionCwd}${sessionReference}\\nCurrent working directory: ${issue.fallbackCwd}`;\n}\n\nexport function formatMissingSessionCwdPrompt(issue: SessionCwdIssue): string {\n\treturn `cwd from session does not exist\\n${issue.sessionCwd}\\n\\ncontinue in current cwd\\n${issue.fallbackCwd}`;\n}\n\nexport class MissingSessionCwdError extends Error {\n\treadonly issue: SessionCwdIssue;\n\n\tconstructor(issue: SessionCwdIssue) {\n\t\tsuper(formatMissingSessionCwdError(issue));\n\t\tthis.name = \"MissingSessionCwdError\";\n\t\tthis.issue = issue;\n\t}\n}\n\nexport function assertSessionCwdExists(session: SessionCwdSource, fallbackCwd: string): void {\n\tconst issue = getMissingSessionCwdIssue(session, fallbackCwd);\n\tif (issue) {\n\t\tthrow new MissingSessionCwdError(issue);\n\t}\n}\n"]}
|
|
@@ -89,7 +89,7 @@ export declare class InteractiveMode {
|
|
|
89
89
|
private customHeader;
|
|
90
90
|
private get session();
|
|
91
91
|
private get agent();
|
|
92
|
-
private get
|
|
92
|
+
private get activeSession();
|
|
93
93
|
private get settingsManager();
|
|
94
94
|
constructor(runtimeHost: PiAgentRuntimeHost, options?: InteractiveModeOptions);
|
|
95
95
|
private getAutocompleteSourceTag;
|