opencode-english-prompt-polisher 0.1.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/LICENSE +674 -0
- package/README.md +155 -0
- package/dist/chat-input.d.ts +6 -0
- package/dist/chat-input.d.ts.map +1 -0
- package/dist/chat-input.js +25 -0
- package/dist/chat-input.js.map +1 -0
- package/dist/chat-message-handler.d.ts +8 -0
- package/dist/chat-message-handler.d.ts.map +1 -0
- package/dist/chat-message-handler.js +17 -0
- package/dist/chat-message-handler.js.map +1 -0
- package/dist/chat-output.d.ts +6 -0
- package/dist/chat-output.d.ts.map +1 -0
- package/dist/chat-output.js +16 -0
- package/dist/chat-output.js.map +1 -0
- package/dist/checker/check-prompt.d.ts +10 -0
- package/dist/checker/check-prompt.d.ts.map +1 -0
- package/dist/checker/check-prompt.js +9 -0
- package/dist/checker/check-prompt.js.map +1 -0
- package/dist/checker/index.d.ts +2 -0
- package/dist/checker/index.d.ts.map +1 -0
- package/dist/checker/index.js +2 -0
- package/dist/checker/index.js.map +1 -0
- package/dist/checker/policy.d.ts +10 -0
- package/dist/checker/policy.d.ts.map +1 -0
- package/dist/checker/policy.js +12 -0
- package/dist/checker/policy.js.map +1 -0
- package/dist/checker/prompt.d.ts +21 -0
- package/dist/checker/prompt.d.ts.map +1 -0
- package/dist/checker/prompt.js +20 -0
- package/dist/checker/prompt.js.map +1 -0
- package/dist/checker/query.d.ts +5 -0
- package/dist/checker/query.d.ts.map +1 -0
- package/dist/checker/query.js +4 -0
- package/dist/checker/query.js.map +1 -0
- package/dist/checker/request.d.ts +13 -0
- package/dist/checker/request.d.ts.map +1 -0
- package/dist/checker/request.js +13 -0
- package/dist/checker/request.js.map +1 -0
- package/dist/checker/session.d.ts +34 -0
- package/dist/checker/session.d.ts.map +1 -0
- package/dist/checker/session.js +47 -0
- package/dist/checker/session.js.map +1 -0
- package/dist/checker/tools.d.ts +19 -0
- package/dist/checker/tools.d.ts.map +1 -0
- package/dist/checker/tools.js +18 -0
- package/dist/checker/tools.js.map +1 -0
- package/dist/checker/workflow-plan.d.ts +8 -0
- package/dist/checker/workflow-plan.d.ts.map +1 -0
- package/dist/checker/workflow-plan.js +9 -0
- package/dist/checker/workflow-plan.js.map +1 -0
- package/dist/checker/workflow.d.ts +8 -0
- package/dist/checker/workflow.d.ts.map +1 -0
- package/dist/checker/workflow.js +7 -0
- package/dist/checker/workflow.js.map +1 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -0
- package/dist/log.d.ts +17 -0
- package/dist/log.d.ts.map +1 -0
- package/dist/log.js +19 -0
- package/dist/log.js.map +1 -0
- package/dist/message-dedupe.d.ts +10 -0
- package/dist/message-dedupe.d.ts.map +1 -0
- package/dist/message-dedupe.js +31 -0
- package/dist/message-dedupe.js.map +1 -0
- package/dist/options/checker.d.ts +4 -0
- package/dist/options/checker.d.ts.map +1 -0
- package/dist/options/checker.js +28 -0
- package/dist/options/checker.js.map +1 -0
- package/dist/options.d.ts +9 -0
- package/dist/options.d.ts.map +1 -0
- package/dist/options.js +36 -0
- package/dist/options.js.map +1 -0
- package/dist/prompt-mode-message-handler.d.ts +13 -0
- package/dist/prompt-mode-message-handler.d.ts.map +1 -0
- package/dist/prompt-mode-message-handler.js +17 -0
- package/dist/prompt-mode-message-handler.js.map +1 -0
- package/dist/prompt-rewrite.d.ts +23 -0
- package/dist/prompt-rewrite.d.ts.map +1 -0
- package/dist/prompt-rewrite.js +59 -0
- package/dist/prompt-rewrite.js.map +1 -0
- package/dist/prompt-runners/logging.d.ts +6 -0
- package/dist/prompt-runners/logging.d.ts.map +1 -0
- package/dist/prompt-runners/logging.js +22 -0
- package/dist/prompt-runners/logging.js.map +1 -0
- package/dist/prompt-runners/proposal-background.d.ts +4 -0
- package/dist/prompt-runners/proposal-background.d.ts.map +1 -0
- package/dist/prompt-runners/proposal-background.js +7 -0
- package/dist/prompt-runners/proposal-background.js.map +1 -0
- package/dist/prompt-runners/proposal.d.ts +6 -0
- package/dist/prompt-runners/proposal.d.ts.map +1 -0
- package/dist/prompt-runners/proposal.js +17 -0
- package/dist/prompt-runners/proposal.js.map +1 -0
- package/dist/prompt-runners/rewrite.d.ts +5 -0
- package/dist/prompt-runners/rewrite.d.ts.map +1 -0
- package/dist/prompt-runners/rewrite.js +15 -0
- package/dist/prompt-runners/rewrite.js.map +1 -0
- package/dist/prompt-runners.d.ts +11 -0
- package/dist/prompt-runners.d.ts.map +1 -0
- package/dist/prompt-runners.js +16 -0
- package/dist/prompt-runners.js.map +1 -0
- package/dist/server.d.ts +6 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +19 -0
- package/dist/server.js.map +1 -0
- package/dist/session-filter.d.ts +22 -0
- package/dist/session-filter.d.ts.map +1 -0
- package/dist/session-filter.js +25 -0
- package/dist/session-filter.js.map +1 -0
- package/dist/types.d.ts +22 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/package.json +72 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { checkerOptions } from "../options.js";
|
|
2
|
+
export function checkerWorkflowPlan(input, options) {
|
|
3
|
+
const checker = checkerOptions(options);
|
|
4
|
+
return {
|
|
5
|
+
deleteSession: checker.deleteSession !== false,
|
|
6
|
+
parentSessionID: input.conversationId,
|
|
7
|
+
};
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=workflow-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow-plan.js","sourceRoot":"","sources":["../../src/checker/workflow-plan.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAQ/C,MAAM,UAAU,mBAAmB,CAAC,KAAuB,EAAE,OAAwB;IACpF,MAAM,OAAO,GAA2B,cAAc,CAAC,OAAO,CAAC,CAAC;IAChE,OAAO;QACN,aAAa,EAAE,OAAO,CAAC,aAAa,KAAK,KAAK;QAC9C,eAAe,EAAE,KAAK,CAAC,cAAc;KACrC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { CheckerRequestBody } from './request.ts';
|
|
2
|
+
import { type CheckerSessionClient } from './session.ts';
|
|
3
|
+
import { type CheckerToolClient } from './tools.ts';
|
|
4
|
+
import type { CheckerWorkflowPlan } from './workflow-plan.ts';
|
|
5
|
+
export type CheckerWorkflowClient = CheckerSessionClient & CheckerToolClient;
|
|
6
|
+
export type RunInCheckerSession<T> = (sessionID: string, tools: CheckerRequestBody['tools']) => Promise<T>;
|
|
7
|
+
export declare function runCheckerWorkflow<T>(client: CheckerWorkflowClient, plan: CheckerWorkflowPlan, run: RunInCheckerSession<T>, directory?: string): Promise<T>;
|
|
8
|
+
//# sourceMappingURL=workflow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../../src/checker/workflow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAsB,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAwB,KAAK,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,MAAM,MAAM,qBAAqB,GAAG,oBAAoB,GAAG,iBAAiB,CAAC;AAE7E,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC;AAE3G,wBAAsB,kBAAkB,CAAC,CAAC,EACzC,MAAM,EAAE,qBAAqB,EAC7B,IAAI,EAAE,mBAAmB,EACzB,GAAG,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAC3B,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,CAAC,CAAC,CASZ"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { withCheckerSession } from "./session.js";
|
|
2
|
+
import { disabledCheckerTools } from "./tools.js";
|
|
3
|
+
export async function runCheckerWorkflow(client, plan, run, directory) {
|
|
4
|
+
const tools = await disabledCheckerTools(client, directory);
|
|
5
|
+
return await withCheckerSession(client, plan.deleteSession, (sessionID) => run(sessionID, tools), directory, plan.parentSessionID);
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=workflow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workflow.js","sourceRoot":"","sources":["../../src/checker/workflow.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAA6B,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,oBAAoB,EAA0B,MAAM,YAAY,CAAC;AAO1E,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAA6B,EAC7B,IAAyB,EACzB,GAA2B,EAC3B,SAAkB;IAElB,MAAM,KAAK,GAAgC,MAAM,oBAAoB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzF,OAAO,MAAM,kBAAkB,CAC9B,MAAM,EACN,IAAI,CAAC,aAAa,EAClB,CAAC,SAAS,EAAc,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,EAChD,SAAS,EACT,IAAI,CAAC,eAAe,CACpB,CAAC;AACH,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const _default: {
|
|
2
|
+
id: string;
|
|
3
|
+
server: ({ client, directory }: import("@opencode-ai/plugin").PluginInput, rawOptions?: import("@opencode-ai/plugin").PluginOptions) => Promise<import("@opencode-ai/plugin").Hooks>;
|
|
4
|
+
};
|
|
5
|
+
export default _default;
|
|
6
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAIA,wBAGyB"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAErC,eAAe;IACd,EAAE,EAAE,kCAAkC;IACtC,MAAM;CACiB,CAAC"}
|
package/dist/log.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LogLevel, WriteLog } from 'english-prompt-polisher';
|
|
2
|
+
type LogBody = {
|
|
3
|
+
service: string;
|
|
4
|
+
level: LogLevel;
|
|
5
|
+
message: string;
|
|
6
|
+
extra?: Record<string, unknown>;
|
|
7
|
+
};
|
|
8
|
+
export type OpenCodeLogClient = {
|
|
9
|
+
app: {
|
|
10
|
+
log: (input: {
|
|
11
|
+
body: LogBody;
|
|
12
|
+
}) => Promise<unknown>;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
export declare function createOpenCodeLog(client: OpenCodeLogClient): WriteLog;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=log.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAElE,KAAK,OAAO,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC;AAEtG,MAAM,MAAM,iBAAiB,GAAG;IAC/B,GAAG,EAAE;QACJ,GAAG,EAAE,CAAC,KAAK,EAAE;YAAE,IAAI,EAAE,OAAO,CAAA;SAAE,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;KACpD,CAAC;CACF,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,iBAAiB,GAAG,QAAQ,CAkBrE"}
|
package/dist/log.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export function createOpenCodeLog(client) {
|
|
2
|
+
return async (level, message, extra) => {
|
|
3
|
+
try {
|
|
4
|
+
const body = {
|
|
5
|
+
service: 'opencode-english-prompt-polisher',
|
|
6
|
+
level,
|
|
7
|
+
message,
|
|
8
|
+
};
|
|
9
|
+
if (extra !== undefined) {
|
|
10
|
+
body.extra = extra;
|
|
11
|
+
}
|
|
12
|
+
await client.app.log({ body });
|
|
13
|
+
}
|
|
14
|
+
catch {
|
|
15
|
+
// Logging must never block the user's prompt.
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=log.js.map
|
package/dist/log.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log.js","sourceRoot":"","sources":["../src/log.ts"],"names":[],"mappings":"AAUA,MAAM,UAAU,iBAAiB,CAAC,MAAyB;IAC1D,OAAO,KAAK,EAAE,KAAe,EAAE,OAAe,EAAE,KAA+B,EAAiB,EAAE;QACjG,IAAI,CAAC;YACJ,MAAM,IAAI,GAAY;gBACrB,OAAO,EAAE,kCAAkC;gBAC3C,KAAK;gBACL,OAAO;aACP,CAAC;YAEF,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;YACpB,CAAC;YAED,MAAM,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACR,8CAA8C;QAC/C,CAAC;IACF,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type OpenCodeMessageDedupeInput = {
|
|
2
|
+
conversationId: string;
|
|
3
|
+
messageId?: string;
|
|
4
|
+
dedupeKey?: string;
|
|
5
|
+
};
|
|
6
|
+
export type NextDedupeKey = () => string;
|
|
7
|
+
export type ShouldHandleMessage = (input: OpenCodeMessageDedupeInput) => boolean;
|
|
8
|
+
export declare function createFallbackDedupeKeyGenerator(): NextDedupeKey;
|
|
9
|
+
export declare function createShouldHandleMessage(): ShouldHandleMessage;
|
|
10
|
+
//# sourceMappingURL=message-dedupe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-dedupe.d.ts","sourceRoot":"","sources":["../src/message-dedupe.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,0BAA0B,GAAG;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC;AACzC,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,0BAA0B,KAAK,OAAO,CAAC;AAEjF,wBAAgB,gCAAgC,IAAI,aAAa,CAOhE;AAgBD,wBAAgB,yBAAyB,IAAI,mBAAmB,CAW/D"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export function createFallbackDedupeKeyGenerator() {
|
|
2
|
+
let fallbackDedupeID = 0;
|
|
3
|
+
return () => {
|
|
4
|
+
fallbackDedupeID += 1;
|
|
5
|
+
return String(fallbackDedupeID);
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
function hasStableKey(value) {
|
|
9
|
+
return value !== undefined && value.length > 0;
|
|
10
|
+
}
|
|
11
|
+
function messageKey(input) {
|
|
12
|
+
if (hasStableKey(input.messageId)) {
|
|
13
|
+
return `message:${input.messageId}`;
|
|
14
|
+
}
|
|
15
|
+
if (hasStableKey(input.dedupeKey)) {
|
|
16
|
+
return `fallback:${input.conversationId}:${input.dedupeKey}`;
|
|
17
|
+
}
|
|
18
|
+
return `conversation:${input.conversationId}`;
|
|
19
|
+
}
|
|
20
|
+
export function createShouldHandleMessage() {
|
|
21
|
+
const seen = new Set();
|
|
22
|
+
return (input) => {
|
|
23
|
+
const key = messageKey(input);
|
|
24
|
+
if (seen.has(key)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
seen.add(key);
|
|
28
|
+
return true;
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=message-dedupe.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"message-dedupe.js","sourceRoot":"","sources":["../src/message-dedupe.ts"],"names":[],"mappings":"AASA,MAAM,UAAU,gCAAgC;IAC/C,IAAI,gBAAgB,GAAW,CAAC,CAAC;IAEjC,OAAO,GAAW,EAAE;QACnB,gBAAgB,IAAI,CAAC,CAAC;QACtB,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;IACjC,CAAC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,KAAyB;IAC9C,OAAO,KAAK,KAAK,SAAS,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;AAChD,CAAC;AAED,SAAS,UAAU,CAAC,KAAiC;IACpD,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,WAAW,KAAK,CAAC,SAAS,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;QACnC,OAAO,YAAY,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;IAC9D,CAAC;IACD,OAAO,gBAAgB,KAAK,CAAC,cAAc,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,yBAAyB;IACxC,MAAM,IAAI,GAAgB,IAAI,GAAG,EAAE,CAAC;IAEpC,OAAO,CAAC,KAAiC,EAAW,EAAE;QACrD,MAAM,GAAG,GAAW,UAAU,CAAC,KAAK,CAAC,CAAC;QACtC,IAAI,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACnB,OAAO,KAAK,CAAC;QACd,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,IAAI,CAAC;IACb,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OpenCodeCheckerOptions, OpenCodeOptions } from '../types.ts';
|
|
2
|
+
export declare function normalizeCheckerOptions(value: unknown): OpenCodeCheckerOptions | undefined;
|
|
3
|
+
export declare function checkerOptions(options: OpenCodeOptions): OpenCodeCheckerOptions;
|
|
4
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../src/options/checker.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE3E,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAyB1F;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,sBAAsB,CAE/E"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { booleanOption, isRecord, normalizeCheckerOptions as normalizeCoreCheckerOptions, stringOption, } from 'english-prompt-polisher';
|
|
2
|
+
export function normalizeCheckerOptions(value) {
|
|
3
|
+
if (!isRecord(value)) {
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
const coreChecker = normalizeCoreCheckerOptions(value);
|
|
7
|
+
const checker = {};
|
|
8
|
+
let hasOptions = false;
|
|
9
|
+
const agent = stringOption(value.agent);
|
|
10
|
+
const deleteSession = booleanOption(value.deleteSession);
|
|
11
|
+
if (agent !== undefined) {
|
|
12
|
+
checker.agent = agent;
|
|
13
|
+
hasOptions = true;
|
|
14
|
+
}
|
|
15
|
+
if (deleteSession !== undefined) {
|
|
16
|
+
checker.deleteSession = deleteSession;
|
|
17
|
+
hasOptions = true;
|
|
18
|
+
}
|
|
19
|
+
if (coreChecker?.model !== undefined) {
|
|
20
|
+
checker.model = coreChecker.model;
|
|
21
|
+
hasOptions = true;
|
|
22
|
+
}
|
|
23
|
+
return hasOptions ? checker : undefined;
|
|
24
|
+
}
|
|
25
|
+
export function checkerOptions(options) {
|
|
26
|
+
return options.checker ?? {};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=checker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.js","sourceRoot":"","sources":["../../src/options/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,aAAa,EACb,QAAQ,EACR,uBAAuB,IAAI,2BAA2B,EACtD,YAAY,GAEZ,MAAM,yBAAyB,CAAC;AAIjC,MAAM,UAAU,uBAAuB,CAAC,KAAc;IACrD,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO;IACR,CAAC;IAED,MAAM,WAAW,GAAyC,2BAA2B,CAAC,KAAK,CAAC,CAAC;IAC7F,MAAM,OAAO,GAA2B,EAAE,CAAC;IAC3C,IAAI,UAAU,GAAY,KAAK,CAAC;IAChC,MAAM,KAAK,GAAuB,YAAY,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAwB,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAE9E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,GAAG,KAAK,CAAC;QACtB,UAAU,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;QACjC,OAAO,CAAC,aAAa,GAAG,aAAa,CAAC;QACtC,UAAU,GAAG,IAAI,CAAC;IACnB,CAAC;IACD,IAAI,WAAW,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC;QAClC,UAAU,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,OAAwB;IACtD,OAAO,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;AAC9B,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { PluginOptions } from '@opencode-ai/plugin';
|
|
2
|
+
import type { OpenCodeOptions, PromptMode } from './types.ts';
|
|
3
|
+
export { checkerOptions } from './options/checker.ts';
|
|
4
|
+
export declare const DEFAULT_OUTPUT_FILE: string;
|
|
5
|
+
export declare function promptModeOption(value: unknown): PromptMode | undefined;
|
|
6
|
+
export declare function resolvePromptMode(options: Pick<OpenCodeOptions, 'mode'>): PromptMode;
|
|
7
|
+
export declare function normalizeOpenCodeOptions(rawOptions?: PluginOptions): OpenCodeOptions;
|
|
8
|
+
export declare function modeOption(options: OpenCodeOptions): PromptMode;
|
|
9
|
+
//# sourceMappingURL=options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIzD,OAAO,KAAK,EAA0B,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,eAAO,MAAM,mBAAmB,EAAE,MAAgD,CAAC;AAEnF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAEvE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC,GAAG,UAAU,CAEpF;AAED,wBAAgB,wBAAwB,CAAC,UAAU,CAAC,EAAE,aAAa,GAAG,eAAe,CAuBpF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,UAAU,CAE/D"}
|
package/dist/options.js
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { normalizeOptions } from 'english-prompt-polisher';
|
|
2
|
+
import { normalizeCheckerOptions } from "./options/checker.js";
|
|
3
|
+
export { checkerOptions } from "./options/checker.js";
|
|
4
|
+
export const DEFAULT_OUTPUT_FILE = '~/opencode-english-prompt-polisher.md';
|
|
5
|
+
export function promptModeOption(value) {
|
|
6
|
+
return value === 'proposal' || value === 'rewrite' ? value : undefined;
|
|
7
|
+
}
|
|
8
|
+
export function resolvePromptMode(options) {
|
|
9
|
+
return options.mode === 'rewrite' ? 'rewrite' : 'proposal';
|
|
10
|
+
}
|
|
11
|
+
export function normalizeOpenCodeOptions(rawOptions) {
|
|
12
|
+
const coreOptions = normalizeOptions(rawOptions, { outputFile: DEFAULT_OUTPUT_FILE });
|
|
13
|
+
const checker = normalizeCheckerOptions(rawOptions?.checker);
|
|
14
|
+
const mode = promptModeOption(rawOptions?.mode);
|
|
15
|
+
const options = { outputFile: coreOptions.outputFile ?? DEFAULT_OUTPUT_FILE };
|
|
16
|
+
if (coreOptions.maxChars !== undefined) {
|
|
17
|
+
options.maxChars = coreOptions.maxChars;
|
|
18
|
+
}
|
|
19
|
+
if (coreOptions.includeOriginal !== undefined) {
|
|
20
|
+
options.includeOriginal = coreOptions.includeOriginal;
|
|
21
|
+
}
|
|
22
|
+
if (mode !== undefined) {
|
|
23
|
+
options.mode = mode;
|
|
24
|
+
}
|
|
25
|
+
if (checker !== undefined) {
|
|
26
|
+
options.checker = checker;
|
|
27
|
+
}
|
|
28
|
+
if (coreOptions.notion !== undefined) {
|
|
29
|
+
options.notion = coreOptions.notion;
|
|
30
|
+
}
|
|
31
|
+
return options;
|
|
32
|
+
}
|
|
33
|
+
export function modeOption(options) {
|
|
34
|
+
return resolvePromptMode(options);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAA0B,MAAM,yBAAyB,CAAC;AAEnF,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAG/D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,MAAM,CAAC,MAAM,mBAAmB,GAAW,uCAAuC,CAAC;AAEnF,MAAM,UAAU,gBAAgB,CAAC,KAAc;IAC9C,OAAO,KAAK,KAAK,UAAU,IAAI,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAsC;IACvE,OAAO,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AAC5D,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,UAA0B;IAClE,MAAM,WAAW,GAAsB,gBAAgB,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC,CAAC;IACzG,MAAM,OAAO,GAAuC,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjG,MAAM,IAAI,GAA2B,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACxE,MAAM,OAAO,GAAoB,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,IAAI,mBAAmB,EAAE,CAAC;IAE/F,IAAI,WAAW,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACzC,CAAC;IACD,IAAI,WAAW,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;QAC/C,OAAO,CAAC,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;IACvD,CAAC;IACD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IACrB,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IACD,IAAI,WAAW,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,OAAO,OAAO,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAwB;IAClD,OAAO,iBAAiB,CAAC,OAAO,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ChatMessageInput } from 'english-prompt-polisher';
|
|
2
|
+
import type { OpenCodeMessageDedupeInput, ShouldHandleMessage } from './message-dedupe.ts';
|
|
3
|
+
import type { PromptMode } from './types.ts';
|
|
4
|
+
export type PromptModeRunners<TInput, TOutput> = {
|
|
5
|
+
propose: (input: TInput, coreInput: ChatMessageInput, output: TOutput) => void;
|
|
6
|
+
rewrite: (input: TInput, coreInput: ChatMessageInput, output: TOutput) => Promise<void>;
|
|
7
|
+
};
|
|
8
|
+
export type ToCoreChatMessageInput<TInput> = (input: TInput) => ChatMessageInput;
|
|
9
|
+
export type ToMessageDedupeInput<TInput> = (input: TInput) => OpenCodeMessageDedupeInput;
|
|
10
|
+
export type PromptModeMessageHandler<TInput, TOutput> = (input: TInput, output: TOutput) => Promise<void>;
|
|
11
|
+
export declare function dispatchPromptMode<TInput, TOutput>(mode: PromptMode, input: TInput, coreInput: ChatMessageInput, output: TOutput, promptRunners: PromptModeRunners<TInput, TOutput>): Promise<void>;
|
|
12
|
+
export declare function createPromptModeMessageHandler<TInput, TOutput>(mode: PromptMode, toCoreInput: ToCoreChatMessageInput<TInput>, toDedupeInput: ToMessageDedupeInput<TInput>, shouldHandleMessage: ShouldHandleMessage, promptRunners: PromptModeRunners<TInput, TOutput>): PromptModeMessageHandler<TInput, TOutput>;
|
|
13
|
+
//# sourceMappingURL=prompt-mode-message-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-mode-message-handler.d.ts","sourceRoot":"","sources":["../src/prompt-mode-message-handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,OAAO,KAAK,EAAE,0BAA0B,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,iBAAiB,CAAC,MAAM,EAAE,OAAO,IAAI;IAChD,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC/E,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACxF,CAAC;AAEF,MAAM,MAAM,sBAAsB,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,gBAAgB,CAAC;AACjF,MAAM,MAAM,oBAAoB,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,MAAM,KAAK,0BAA0B,CAAC;AAEzF,MAAM,MAAM,wBAAwB,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAE1G,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EACvD,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,OAAO,EAC7D,IAAI,EAAE,UAAU,EAChB,WAAW,EAAE,sBAAsB,CAAC,MAAM,CAAC,EAC3C,aAAa,EAAE,oBAAoB,CAAC,MAAM,CAAC,EAC3C,mBAAmB,EAAE,mBAAmB,EACxC,aAAa,EAAE,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/C,wBAAwB,CAAC,MAAM,EAAE,OAAO,CAAC,CAS3C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export async function dispatchPromptMode(mode, input, coreInput, output, promptRunners) {
|
|
2
|
+
if (mode === 'rewrite') {
|
|
3
|
+
await promptRunners.rewrite(input, coreInput, output);
|
|
4
|
+
return;
|
|
5
|
+
}
|
|
6
|
+
promptRunners.propose(input, coreInput, output);
|
|
7
|
+
}
|
|
8
|
+
export function createPromptModeMessageHandler(mode, toCoreInput, toDedupeInput, shouldHandleMessage, promptRunners) {
|
|
9
|
+
return async (input, output) => {
|
|
10
|
+
if (!shouldHandleMessage(toDedupeInput(input))) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
const coreInput = toCoreInput(input);
|
|
14
|
+
await dispatchPromptMode(mode, input, coreInput, output, promptRunners);
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=prompt-mode-message-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-mode-message-handler.js","sourceRoot":"","sources":["../src/prompt-mode-message-handler.ts"],"names":[],"mappings":"AAeA,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,IAAgB,EAChB,KAAa,EACb,SAA2B,EAC3B,MAAe,EACf,aAAiD;IAEjD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACxB,MAAM,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QACtD,OAAO;IACR,CAAC;IAED,aAAa,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC7C,IAAgB,EAChB,WAA2C,EAC3C,aAA2C,EAC3C,mBAAwC,EACxC,aAAiD;IAEjD,OAAO,KAAK,EAAE,KAAa,EAAE,MAAe,EAAiB,EAAE;QAC9D,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;YAChD,OAAO;QACR,CAAC;QAED,MAAM,SAAS,GAAqB,WAAW,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,CAAC,CAAC;IACzE,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type ChatMessageInput, type ChatMessageOutput, type PolisherResult } from 'english-prompt-polisher';
|
|
2
|
+
import type { OpenCodeOptions } from './types.ts';
|
|
3
|
+
type CheckPrompt = (input: ChatMessageInput, options: OpenCodeOptions, prompt: string) => Promise<PolisherResult>;
|
|
4
|
+
export type PromptRewriteDependencies = {
|
|
5
|
+
checkPrompt: CheckPrompt;
|
|
6
|
+
};
|
|
7
|
+
export type PromptRewriteCandidate = {
|
|
8
|
+
originalPrompt: string;
|
|
9
|
+
};
|
|
10
|
+
export type PromptRewriteResult = {
|
|
11
|
+
status: 'skipped';
|
|
12
|
+
} | {
|
|
13
|
+
status: 'rewritten';
|
|
14
|
+
proposedPrompt: string;
|
|
15
|
+
};
|
|
16
|
+
export declare function shouldCheckPromptForRewrite(prompt: string, options: OpenCodeOptions): boolean;
|
|
17
|
+
export declare function shouldUsePromptRewrite(result: PolisherResult, originalPrompt: string): boolean;
|
|
18
|
+
export declare function createPromptRewriteCandidate(output: ChatMessageOutput, options: OpenCodeOptions): PromptRewriteCandidate | undefined;
|
|
19
|
+
export declare function buildRewrittenPromptParts(originalParts: ChatMessageOutput['parts'], proposedPrompt: string): ChatMessageOutput['parts'] | undefined;
|
|
20
|
+
export declare function applyPromptRewrite(output: ChatMessageOutput, proposedPrompt: string): boolean;
|
|
21
|
+
export declare function handlePromptRewrite(input: ChatMessageInput, output: ChatMessageOutput, options: OpenCodeOptions, dependencies: PromptRewriteDependencies): Promise<PromptRewriteResult>;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=prompt-rewrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-rewrite.d.ts","sourceRoot":"","sources":["../src/prompt-rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEtB,KAAK,cAAc,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAElD,KAAK,WAAW,GAAG,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAElH,MAAM,MAAM,yBAAyB,GAAG;IACvC,WAAW,EAAE,WAAW,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACpC,cAAc,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1G,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAI7F;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAE9F;AAED,wBAAgB,4BAA4B,CAC3C,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,eAAe,GACtB,sBAAsB,GAAG,SAAS,CAOpC;AAUD,wBAAgB,yBAAyB,CACxC,aAAa,EAAE,iBAAiB,CAAC,OAAO,CAAC,EACzC,cAAc,EAAE,MAAM,GACpB,iBAAiB,CAAC,OAAO,CAAC,GAAG,SAAS,CAmBxC;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAQ7F;AAED,wBAAsB,mBAAmB,CACxC,KAAK,EAAE,gBAAgB,EACvB,MAAM,EAAE,iBAAiB,EACzB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,yBAAyB,GACrC,OAAO,CAAC,mBAAmB,CAAC,CAc9B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { isInternalPrompt, maxPromptChars, textFromParts, } from 'english-prompt-polisher';
|
|
2
|
+
export function shouldCheckPromptForRewrite(prompt, options) {
|
|
3
|
+
return (prompt.trim().length > 0 && !isInternalPrompt(prompt) && Array.from(prompt).length <= maxPromptChars(options));
|
|
4
|
+
}
|
|
5
|
+
export function shouldUsePromptRewrite(result, originalPrompt) {
|
|
6
|
+
return result.needsProposal && result.proposedPrompt.trim().length > 0 && result.proposedPrompt !== originalPrompt;
|
|
7
|
+
}
|
|
8
|
+
export function createPromptRewriteCandidate(output, options) {
|
|
9
|
+
const originalPrompt = textFromParts(output.parts);
|
|
10
|
+
if (!shouldCheckPromptForRewrite(originalPrompt, options)) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
return { originalPrompt };
|
|
14
|
+
}
|
|
15
|
+
function isUserTextPart(part) {
|
|
16
|
+
return part.type === 'text' && typeof part.text === 'string' && part.synthetic !== true && part.ignored !== true;
|
|
17
|
+
}
|
|
18
|
+
function rewrittenTextPart(part, proposedPrompt) {
|
|
19
|
+
return { ...part, text: proposedPrompt };
|
|
20
|
+
}
|
|
21
|
+
export function buildRewrittenPromptParts(originalParts, proposedPrompt) {
|
|
22
|
+
// The candidate prompt is built from all user text parts, so rewrite collapses
|
|
23
|
+
// them into the first user text part and prunes stale later fragments.
|
|
24
|
+
const rewrittenParts = [];
|
|
25
|
+
let replaced = false;
|
|
26
|
+
for (const part of originalParts) {
|
|
27
|
+
if (!isUserTextPart(part)) {
|
|
28
|
+
rewrittenParts.push(part);
|
|
29
|
+
continue;
|
|
30
|
+
}
|
|
31
|
+
if (!replaced) {
|
|
32
|
+
rewrittenParts.push(rewrittenTextPart(part, proposedPrompt));
|
|
33
|
+
replaced = true;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return replaced ? rewrittenParts : undefined;
|
|
37
|
+
}
|
|
38
|
+
export function applyPromptRewrite(output, proposedPrompt) {
|
|
39
|
+
const parts = buildRewrittenPromptParts(output.parts, proposedPrompt);
|
|
40
|
+
if (parts === undefined) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
output.parts.splice(0, output.parts.length, ...parts);
|
|
44
|
+
return true;
|
|
45
|
+
}
|
|
46
|
+
export async function handlePromptRewrite(input, output, options, dependencies) {
|
|
47
|
+
const candidate = createPromptRewriteCandidate(output, options);
|
|
48
|
+
if (candidate === undefined) {
|
|
49
|
+
return { status: 'skipped' };
|
|
50
|
+
}
|
|
51
|
+
const result = await dependencies.checkPrompt(input, options, candidate.originalPrompt);
|
|
52
|
+
if (!shouldUsePromptRewrite(result, candidate.originalPrompt)) {
|
|
53
|
+
return { status: 'skipped' };
|
|
54
|
+
}
|
|
55
|
+
return applyPromptRewrite(output, result.proposedPrompt)
|
|
56
|
+
? { status: 'rewritten', proposedPrompt: result.proposedPrompt }
|
|
57
|
+
: { status: 'skipped' };
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=prompt-rewrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-rewrite.js","sourceRoot":"","sources":["../src/prompt-rewrite.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type WriteLog } from 'english-prompt-polisher';
|
|
2
|
+
import type { OpenCodeChatMessageInput } from '../types.ts';
|
|
3
|
+
export type PromptRunnerAction = () => Promise<void>;
|
|
4
|
+
export declare function logPromptRunnerFailure(writeLog: WriteLog, input: OpenCodeChatMessageInput, message: string, error: unknown): Promise<void>;
|
|
5
|
+
export declare function runPromptRunnerSafely(writeLog: WriteLog, input: OpenCodeChatMessageInput, failureMessage: string, run: PromptRunnerAction): Promise<void>;
|
|
6
|
+
//# sourceMappingURL=logging.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.d.ts","sourceRoot":"","sources":["../../src/prompt-runners/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;AASrD,wBAAsB,sBAAsB,CAC3C,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,wBAAwB,EAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACZ,OAAO,CAAC,IAAI,CAAC,CAKf;AAED,wBAAsB,qBAAqB,CAC1C,QAAQ,EAAE,QAAQ,EAClB,KAAK,EAAE,wBAAwB,EAC/B,cAAc,EAAE,MAAM,EACtB,GAAG,EAAE,kBAAkB,GACrB,OAAO,CAAC,IAAI,CAAC,CAMf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { formatUnknownError } from 'english-prompt-polisher';
|
|
2
|
+
function openCodePromptRunnerLogExtra(input) {
|
|
3
|
+
return {
|
|
4
|
+
sessionID: input.sessionID,
|
|
5
|
+
messageID: input.messageID,
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export async function logPromptRunnerFailure(writeLog, input, message, error) {
|
|
9
|
+
await writeLog('warn', message, {
|
|
10
|
+
...openCodePromptRunnerLogExtra(input),
|
|
11
|
+
error: formatUnknownError(error),
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
export async function runPromptRunnerSafely(writeLog, input, failureMessage, run) {
|
|
15
|
+
try {
|
|
16
|
+
await run();
|
|
17
|
+
}
|
|
18
|
+
catch (error) {
|
|
19
|
+
await logPromptRunnerFailure(writeLog, input, failureMessage, error);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=logging.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logging.js","sourceRoot":"","sources":["../../src/prompt-runners/logging.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAiB,MAAM,yBAAyB,CAAC;AAM5E,SAAS,4BAA4B,CAAC,KAA+B;IACpE,OAAO;QACN,SAAS,EAAE,KAAK,CAAC,SAAS;QAC1B,SAAS,EAAE,KAAK,CAAC,SAAS;KAC1B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC3C,QAAkB,EAClB,KAA+B,EAC/B,OAAe,EACf,KAAc;IAEd,MAAM,QAAQ,CAAC,MAAM,EAAE,OAAO,EAAE;QAC/B,GAAG,4BAA4B,CAAC,KAAK,CAAC;QACtC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC;KAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAC1C,QAAkB,EAClB,KAA+B,EAC/B,cAAsB,EACtB,GAAuB;IAEvB,IAAI,CAAC;QACJ,MAAM,GAAG,EAAE,CAAC;IACb,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,sBAAsB,CAAC,QAAQ,EAAE,KAAK,EAAE,cAAc,EAAE,KAAK,CAAC,CAAC;IACtE,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OpenCodePromptRunners } from '../prompt-runners.ts';
|
|
2
|
+
import type { RunPromptProposal } from './proposal.ts';
|
|
3
|
+
export declare function createBackgroundProposalRunner(runPromptProposal: RunPromptProposal): OpenCodePromptRunners['propose'];
|
|
4
|
+
//# sourceMappingURL=proposal-background.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-background.d.ts","sourceRoot":"","sources":["../../src/prompt-runners/proposal-background.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAGlE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,wBAAgB,8BAA8B,CAAC,iBAAiB,EAAE,iBAAiB,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAMrH"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { runWithOutputSnapshotInBackground } from "../chat-output.js";
|
|
2
|
+
export function createBackgroundProposalRunner(runPromptProposal) {
|
|
3
|
+
return (input, coreInput, output) => {
|
|
4
|
+
runWithOutputSnapshotInBackground(output, (outputSnapshot) => runPromptProposal(input, coreInput, outputSnapshot));
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=proposal-background.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-background.js","sourceRoot":"","sources":["../../src/prompt-runners/proposal-background.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iCAAiC,EAAE,MAAM,mBAAmB,CAAC;AAMtE,MAAM,UAAU,8BAA8B,CAAC,iBAAoC;IAClF,OAAO,CAAC,KAA+B,EAAE,SAA2B,EAAE,MAAyB,EAAQ,EAAE;QACxG,iCAAiC,CAAC,MAAM,EAAE,CAAC,cAAc,EAAiB,EAAE,CAC3E,iBAAiB,CAAC,KAAK,EAAE,SAAS,EAAE,cAAc,CAAC,CACnD,CAAC;IACH,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ChatMessageInput, type ChatMessageOutput, type WriteLog } from 'english-prompt-polisher';
|
|
2
|
+
import type { RunCheckPrompt } from '../prompt-runners.ts';
|
|
3
|
+
import type { OpenCodeChatMessageInput, OpenCodeOptions } from '../types.ts';
|
|
4
|
+
export type RunPromptProposal = (input: OpenCodeChatMessageInput, coreInput: ChatMessageInput, output: ChatMessageOutput) => Promise<void>;
|
|
5
|
+
export declare function createPromptProposalExecutor(options: OpenCodeOptions, runCheckPrompt: RunCheckPrompt, writeLog: WriteLog): RunPromptProposal;
|
|
6
|
+
//# sourceMappingURL=proposal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal.d.ts","sourceRoot":"","sources":["../../src/prompt-runners/proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EAEtB,KAAK,QAAQ,EACb,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI7E,MAAM,MAAM,iBAAiB,GAAG,CAC/B,KAAK,EAAE,wBAAwB,EAC/B,SAAS,EAAE,gBAAgB,EAC3B,MAAM,EAAE,iBAAiB,KACrB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,wBAAgB,4BAA4B,CAC3C,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,GAChB,iBAAiB,CAkBnB"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { handlePromptProposal, } from 'english-prompt-polisher';
|
|
2
|
+
import { runPromptRunnerSafely } from "./logging.js";
|
|
3
|
+
export function createPromptProposalExecutor(options, runCheckPrompt, writeLog) {
|
|
4
|
+
const { mode, ...proposalOptions } = options;
|
|
5
|
+
void mode;
|
|
6
|
+
return async (input, coreInput, output) => {
|
|
7
|
+
await runPromptRunnerSafely(writeLog, input, 'Failed to polish prompt', async () => {
|
|
8
|
+
await handlePromptProposal(coreInput, output, proposalOptions, {
|
|
9
|
+
checkPrompt: async (checkerInput, _checkerOptions, prompt) => {
|
|
10
|
+
return await runCheckPrompt(checkerInput, prompt);
|
|
11
|
+
},
|
|
12
|
+
log: writeLog,
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=proposal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal.js","sourceRoot":"","sources":["../../src/prompt-runners/proposal.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,oBAAoB,GAKpB,MAAM,yBAAyB,CAAC;AAKjC,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAQrD,MAAM,UAAU,4BAA4B,CAC3C,OAAwB,EACxB,cAA8B,EAC9B,QAAkB;IAElB,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,GAAG,OAAO,CAAC;IAC7C,KAAK,IAAI,CAAC;IAEV,OAAO,KAAK,EACX,KAA+B,EAC/B,SAA2B,EAC3B,MAAyB,EACT,EAAE;QAClB,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,yBAAyB,EAAE,KAAK,IAAmB,EAAE;YACjG,MAAM,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE;gBAC9D,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAA2B,EAAE;oBACrF,OAAO,MAAM,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC;gBACD,GAAG,EAAE,QAAQ;aACb,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type WriteLog } from 'english-prompt-polisher';
|
|
2
|
+
import type { OpenCodePromptRunners, RunCheckPrompt } from '../prompt-runners.ts';
|
|
3
|
+
import type { OpenCodeOptions } from '../types.ts';
|
|
4
|
+
export declare function createRewriteRunner(options: OpenCodeOptions, runCheckPrompt: RunCheckPrompt, writeLog: WriteLog): OpenCodePromptRunners['rewrite'];
|
|
5
|
+
//# sourceMappingURL=rewrite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewrite.d.ts","sourceRoot":"","sources":["../../src/prompt-runners/rewrite.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,QAAQ,EACb,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAA4B,eAAe,EAAE,MAAM,aAAa,CAAC;AAI7E,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,eAAe,EACxB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,GAChB,qBAAqB,CAAC,SAAS,CAAC,CAgBlC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { handlePromptRewrite } from "../prompt-rewrite.js";
|
|
2
|
+
import { runPromptRunnerSafely } from "./logging.js";
|
|
3
|
+
export function createRewriteRunner(options, runCheckPrompt, writeLog) {
|
|
4
|
+
const runPromptRewrite = async (input, coreInput, output) => {
|
|
5
|
+
await runPromptRunnerSafely(writeLog, input, 'Failed to rewrite prompt', async () => {
|
|
6
|
+
await handlePromptRewrite(coreInput, output, options, {
|
|
7
|
+
checkPrompt: async (checkerInput, _checkerOptions, prompt) => {
|
|
8
|
+
return await runCheckPrompt(checkerInput, prompt);
|
|
9
|
+
},
|
|
10
|
+
});
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
return runPromptRewrite;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=rewrite.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rewrite.js","sourceRoot":"","sources":["../../src/prompt-runners/rewrite.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAI3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,MAAM,UAAU,mBAAmB,CAClC,OAAwB,EACxB,cAA8B,EAC9B,QAAkB;IAElB,MAAM,gBAAgB,GAAG,KAAK,EAC7B,KAA+B,EAC/B,SAA2B,EAC3B,MAAyB,EACT,EAAE;QAClB,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,0BAA0B,EAAE,KAAK,IAAmB,EAAE;YAClG,MAAM,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;gBACrD,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAA2B,EAAE;oBACrF,OAAO,MAAM,cAAc,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;gBACnD,CAAC;aACD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAO,gBAAgB,CAAC;AACzB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ChatMessageInput, type ChatMessageOutput, type PolisherResult } from 'english-prompt-polisher';
|
|
2
|
+
import { type CheckerClient } from './checker/index.ts';
|
|
3
|
+
import { type OpenCodeLogClient } from './log.ts';
|
|
4
|
+
import type { PromptModeRunners } from './prompt-mode-message-handler.ts';
|
|
5
|
+
import type { SessionLookupClient } from './session-filter.ts';
|
|
6
|
+
import type { OpenCodeChatMessageInput, OpenCodeOptions } from './types.ts';
|
|
7
|
+
export type OpenCodeClient = CheckerClient & OpenCodeLogClient & SessionLookupClient;
|
|
8
|
+
export type OpenCodePromptRunners = PromptModeRunners<OpenCodeChatMessageInput, ChatMessageOutput>;
|
|
9
|
+
export type RunCheckPrompt = (coreInput: ChatMessageInput, prompt: string) => Promise<PolisherResult>;
|
|
10
|
+
export declare function createOpenCodePromptRunners(client: OpenCodeClient, options: OpenCodeOptions, directory?: string): OpenCodePromptRunners;
|
|
11
|
+
//# sourceMappingURL=prompt-runners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-runners.d.ts","sourceRoot":"","sources":["../src/prompt-runners.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EAEnB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAqB,KAAK,iBAAiB,EAAE,MAAM,UAAU,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAI1E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE5E,MAAM,MAAM,cAAc,GAAG,aAAa,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAErF,MAAM,MAAM,qBAAqB,GAAG,iBAAiB,CAAC,wBAAwB,EAAE,iBAAiB,CAAC,CAAC;AAEnG,MAAM,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,cAAc,CAAC,CAAC;AAEtG,wBAAgB,2BAA2B,CAC1C,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,eAAe,EACxB,SAAS,CAAC,EAAE,MAAM,GAChB,qBAAqB,CAWvB"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { checkPrompt } from "./checker/index.js";
|
|
2
|
+
import { createOpenCodeLog } from "./log.js";
|
|
3
|
+
import { createBackgroundProposalRunner } from "./prompt-runners/proposal-background.js";
|
|
4
|
+
import { createPromptProposalExecutor } from "./prompt-runners/proposal.js";
|
|
5
|
+
import { createRewriteRunner } from "./prompt-runners/rewrite.js";
|
|
6
|
+
export function createOpenCodePromptRunners(client, options, directory) {
|
|
7
|
+
const writeLog = createOpenCodeLog(client);
|
|
8
|
+
const runCheckPrompt = async (coreInput, prompt) => {
|
|
9
|
+
return await checkPrompt(client, coreInput, options, prompt, directory);
|
|
10
|
+
};
|
|
11
|
+
return {
|
|
12
|
+
propose: createBackgroundProposalRunner(createPromptProposalExecutor(options, runCheckPrompt, writeLog)),
|
|
13
|
+
rewrite: createRewriteRunner(options, runCheckPrompt, writeLog),
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=prompt-runners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"prompt-runners.js","sourceRoot":"","sources":["../src/prompt-runners.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,WAAW,EAAsB,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAE,iBAAiB,EAA0B,MAAM,UAAU,CAAC;AAErE,OAAO,EAAE,8BAA8B,EAAE,MAAM,yCAAyC,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAUlE,MAAM,UAAU,2BAA2B,CAC1C,MAAsB,EACtB,OAAwB,EACxB,SAAkB;IAElB,MAAM,QAAQ,GAAa,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAErD,MAAM,cAAc,GAAG,KAAK,EAAE,SAA2B,EAAE,MAAc,EAA2B,EAAE;QACrG,OAAO,MAAM,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;IACzE,CAAC,CAAC;IAEF,OAAO;QACN,OAAO,EAAE,8BAA8B,CAAC,4BAA4B,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC;QACxG,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,CAAC;KAC/D,CAAC;AACH,CAAC"}
|
package/dist/server.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Hooks, PluginInput, PluginOptions } from '@opencode-ai/plugin';
|
|
2
|
+
import { type OpenCodeClient } from './prompt-runners.ts';
|
|
3
|
+
export type { OpenCodeClient } from './prompt-runners.ts';
|
|
4
|
+
export declare function createOpenCodeHooks(client: OpenCodeClient, rawOptions?: PluginOptions, directory?: string): Hooks;
|
|
5
|
+
export declare const server: ({ client, directory }: PluginInput, rawOptions?: PluginOptions) => Promise<Hooks>;
|
|
6
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAU7E,OAAO,EAA+B,KAAK,cAAc,EAA8B,MAAM,qBAAqB,CAAC;AAInH,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,KAAK,CAgBjH;AAED,eAAO,MAAM,MAAM,GAAI,uBAAuB,WAAW,EAAE,aAAa,aAAa,KAAG,OAAO,CAAC,KAAK,CAEpG,CAAC"}
|