@burmese/opencode 3.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.
Files changed (42) hide show
  1. package/LICENSE +21 -0
  2. package/dist/check-opencode-foundation.d.ts +2 -0
  3. package/dist/check-opencode-foundation.d.ts.map +1 -0
  4. package/dist/check-opencode-foundation.js +245 -0
  5. package/dist/check-opencode-foundation.js.map +1 -0
  6. package/dist/check-opencode-plugin.d.ts +2 -0
  7. package/dist/check-opencode-plugin.d.ts.map +1 -0
  8. package/dist/check-opencode-plugin.js +107 -0
  9. package/dist/check-opencode-plugin.js.map +1 -0
  10. package/dist/index.d.ts +7 -0
  11. package/dist/index.d.ts.map +1 -0
  12. package/dist/index.js +7 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/opencode-config.d.ts +44 -0
  15. package/dist/opencode-config.d.ts.map +1 -0
  16. package/dist/opencode-config.js +213 -0
  17. package/dist/opencode-config.js.map +1 -0
  18. package/dist/opencode-global-setup.d.ts +42 -0
  19. package/dist/opencode-global-setup.d.ts.map +1 -0
  20. package/dist/opencode-global-setup.js +378 -0
  21. package/dist/opencode-global-setup.js.map +1 -0
  22. package/dist/opencode-plugin-runtime.d.ts +38 -0
  23. package/dist/opencode-plugin-runtime.d.ts.map +1 -0
  24. package/dist/opencode-plugin-runtime.js +213 -0
  25. package/dist/opencode-plugin-runtime.js.map +1 -0
  26. package/dist/opencode-previews.d.ts +25 -0
  27. package/dist/opencode-previews.d.ts.map +1 -0
  28. package/dist/opencode-previews.js +37 -0
  29. package/dist/opencode-previews.js.map +1 -0
  30. package/dist/opencode-project-setup.d.ts +27 -0
  31. package/dist/opencode-project-setup.d.ts.map +1 -0
  32. package/dist/opencode-project-setup.js +180 -0
  33. package/dist/opencode-project-setup.js.map +1 -0
  34. package/dist/opencode-status.d.ts +14 -0
  35. package/dist/opencode-status.d.ts.map +1 -0
  36. package/dist/opencode-status.js +145 -0
  37. package/dist/opencode-status.js.map +1 -0
  38. package/dist/plugin.d.ts +8 -0
  39. package/dist/plugin.d.ts.map +1 -0
  40. package/dist/plugin.js +8 -0
  41. package/dist/plugin.js.map +1 -0
  42. package/package.json +44 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-global-setup.js","sourceRoot":"","sources":["../src/opencode-global-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import { type OpenPetsClient, type OpenPetsReaction } from "@burmese/client";
2
+ import { type HookSpeechCategory } from "@burmese/agent-events";
3
+ export interface OpenCodePluginOptions {
4
+ readonly pet?: string;
5
+ readonly debug?: boolean;
6
+ }
7
+ export interface OpenCodePluginRuntimeOptions extends OpenCodePluginOptions {
8
+ readonly clientFactory?: () => OpenPetsClient;
9
+ readonly schedule?: (work: () => Promise<void>) => void;
10
+ readonly now?: () => number;
11
+ readonly random?: () => number;
12
+ readonly throttlePath?: string;
13
+ readonly debugLog?: (message: string) => void;
14
+ }
15
+ export interface OpenCodePluginDecision {
16
+ readonly reaction?: OpenPetsReaction;
17
+ readonly speechCategory?: HookSpeechCategory;
18
+ }
19
+ export type OpenCodeHooks = {
20
+ readonly event: (input: {
21
+ readonly event: unknown;
22
+ }) => void;
23
+ readonly "chat.message": (input: unknown, output: unknown) => void;
24
+ readonly "tool.execute.before": (input: {
25
+ readonly tool?: string;
26
+ }, output: {
27
+ readonly args?: unknown;
28
+ }) => void;
29
+ readonly "tool.execute.after": (input: {
30
+ readonly tool?: string;
31
+ }, output: unknown) => void;
32
+ };
33
+ export declare function createOpenPetsOpenCodeHooks(options?: OpenCodePluginRuntimeOptions): OpenCodeHooks;
34
+ export declare function classifyOpenCodeToolReaction(toolName: string, args?: unknown): OpenPetsReaction | undefined;
35
+ export declare function classifyOpenCodeBusEvent(event: unknown): OpenCodePluginDecision | undefined;
36
+ export declare function shouldIgnoreOpenPetsTool(toolName: string): boolean;
37
+ export declare function getDefaultOpenCodeThrottlePath(): string;
38
+ //# sourceMappingURL=opencode-plugin-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-plugin-runtime.d.ts","sourceRoot":"","sources":["../src/opencode-plugin-runtime.ts"],"names":[],"mappings":"AAIA,OAAO,EAAwB,KAAK,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAkB,KAAK,kBAAkB,EAAsB,MAAM,uBAAuB,CAAC;AAIpG,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,4BAA6B,SAAQ,qBAAqB;IACzE,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,cAAc,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;CAC9C;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IAC7D,QAAQ,CAAC,cAAc,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACnE,QAAQ,CAAC,qBAAqB,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAA;KAAE,KAAK,IAAI,CAAC;IACjH,QAAQ,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE;QAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CAC7F,CAAC;AAOF,wBAAgB,2BAA2B,CAAC,OAAO,GAAE,4BAAiC,GAAG,aAAa,CAmErG;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,GAAG,gBAAgB,GAAG,SAAS,CAK3G;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,sBAAsB,GAAG,SAAS,CAM3F;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGlE;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAKvD"}
@@ -0,0 +1,213 @@
1
+ import { homedir, tmpdir, userInfo } from "node:os";
2
+ import { dirname, join } from "node:path";
3
+ import { mkdirSync, readFileSync, renameSync, writeFileSync } from "node:fs";
4
+ import { createOpenPetsClient } from "@burmese/client";
5
+ import { pickHookSpeech, validateHookSpeech } from "@burmese/agent-events";
6
+ import { validateOpenPetsPetArg } from "./opencode-previews.js";
7
+ const speechCooldownMs = 20_000;
8
+ const permissionCooldownMs = 3_000;
9
+ const reactionCooldownMs = 10_000;
10
+ const openPetsClientLabel = "OpenCode";
11
+ export function createOpenPetsOpenCodeHooks(options = {}) {
12
+ const pet = options.pet === undefined ? undefined : validateOpenPetsPetArg(options.pet);
13
+ const clientFactory = options.clientFactory ?? (() => createOpenPetsClient({ connectTimeoutMs: 500, responseTimeoutMs: 500, source: "plugin" }));
14
+ const schedule = options.schedule ?? defaultSchedule;
15
+ const debug = options.debug === true || process.env.OPENPETS_DEBUG === "1";
16
+ const debugLog = options.debugLog ?? ((message) => { if (debug)
17
+ process.stderr.write(`${message}\n`); });
18
+ let client;
19
+ let lease;
20
+ const run = (decision) => {
21
+ if (!decision?.reaction)
22
+ return;
23
+ const reaction = decision.reaction;
24
+ try {
25
+ schedule(async () => {
26
+ try {
27
+ const shouldSpeak = decision.speechCategory ? shouldSendSpeech(decision.speechCategory, options) : false;
28
+ const shouldReact = shouldSendReaction(reaction, options);
29
+ if (!shouldSpeak && !shouldReact)
30
+ return;
31
+ client ??= clientFactory();
32
+ const leaseId = pet ? await getLeaseId(client, pet) : undefined;
33
+ if (decision.speechCategory && shouldSpeak) {
34
+ await client.say(validateHookSpeech(pickHookSpeech(decision.speechCategory, options.random)), { reaction, leaseId, clientLabel: openPetsClientLabel });
35
+ return;
36
+ }
37
+ await client.react(reaction, { leaseId, clientLabel: openPetsClientLabel });
38
+ }
39
+ catch (error) {
40
+ debugLog(`OpenPets OpenCode plugin ignored error: ${sanitizeDebugError(error)}`);
41
+ }
42
+ });
43
+ }
44
+ catch (error) {
45
+ debugLog(`OpenPets OpenCode plugin scheduling ignored error: ${sanitizeDebugError(error)}`);
46
+ }
47
+ };
48
+ const getLeaseId = async (hit, requestedPetId) => {
49
+ if (lease && (!lease.expiresAt || lease.expiresAt - Date.now() > 2_000))
50
+ return lease.leaseId;
51
+ try {
52
+ const next = await hit.acquireLease({ requestedPetId });
53
+ lease = { leaseId: next.leaseId, expiresAt: next.expiresAt };
54
+ return next.leaseId;
55
+ }
56
+ catch (error) {
57
+ debugLog(`OpenPets OpenCode lease unavailable: ${sanitizeDebugError(error)}`);
58
+ return undefined;
59
+ }
60
+ };
61
+ return {
62
+ event(input) {
63
+ try {
64
+ run(classifyOpenCodeBusEvent(input.event));
65
+ }
66
+ catch (error) {
67
+ debugLog(`OpenPets OpenCode event ignored error: ${sanitizeDebugError(error)}`);
68
+ }
69
+ },
70
+ "chat.message"() {
71
+ run({ reaction: "thinking" });
72
+ },
73
+ "tool.execute.before"(input, output) {
74
+ const tool = typeof input.tool === "string" ? input.tool : "";
75
+ if (shouldIgnoreOpenPetsTool(tool))
76
+ return;
77
+ run({ reaction: classifyOpenCodeToolReaction(tool, output.args) });
78
+ },
79
+ "tool.execute.after"() {
80
+ // Intentionally quiet for now; session.error/session.status events provide less noisy completion signals.
81
+ },
82
+ };
83
+ }
84
+ export function classifyOpenCodeToolReaction(toolName, args) {
85
+ const normalized = toolName.toLowerCase();
86
+ if (/edit|write|patch|apply_patch/.test(normalized))
87
+ return "editing";
88
+ if (/bash|shell|terminal/.test(normalized))
89
+ return isTestLikeToolArgs(args) ? "testing" : undefined;
90
+ return undefined;
91
+ }
92
+ export function classifyOpenCodeBusEvent(event) {
93
+ const type = getEventType(event);
94
+ if (type === "permission.asked")
95
+ return shouldIgnoreOpenPetsTool(getEventPermission(event) ?? "") ? undefined : { reaction: "waiting", speechCategory: "permission" };
96
+ if (type === "session.error")
97
+ return { reaction: "error", speechCategory: "error" };
98
+ if (type === "session.status" && getEventStatusType(event) === "idle")
99
+ return { reaction: "success" };
100
+ return undefined;
101
+ }
102
+ export function shouldIgnoreOpenPetsTool(toolName) {
103
+ const normalized = toolName.toLowerCase().replace(/[^a-z0-9_:-]+/g, "_");
104
+ return /(?:^|[_:-])openpets_(?:openpets_|burmese_)?(?:status|say|react)$/.test(normalized) || /^(?:openpets|burmese)_(?:status|say|react)$/.test(normalized);
105
+ }
106
+ export function getDefaultOpenCodeThrottlePath() {
107
+ if (process.platform === "win32")
108
+ return join(process.env.LOCALAPPDATA || join(homedir(), "AppData", "Local"), "OpenPets", "opencode-hook-throttle.json");
109
+ const stateHome = process.env.XDG_STATE_HOME || join(homedir(), ".local", "state");
110
+ if (stateHome)
111
+ return join(stateHome, "openpets", "opencode-hook-throttle.json");
112
+ return join(tmpdir(), `openpets-${safeUid()}`, "opencode-hook-throttle.json");
113
+ }
114
+ function shouldSendSpeech(category, options) {
115
+ const now = options.now?.() ?? Date.now();
116
+ const cooldown = category === "permission" ? permissionCooldownMs : speechCooldownMs;
117
+ return shouldSendThrottleKey(category, cooldown, now, options.throttlePath ?? getDefaultOpenCodeThrottlePath());
118
+ }
119
+ function shouldSendReaction(reaction, options) {
120
+ const now = options.now?.() ?? Date.now();
121
+ return shouldSendThrottleKey(`reaction:${reaction}`, reactionCooldownMs, now, options.throttlePath ?? getDefaultOpenCodeThrottlePath());
122
+ }
123
+ function shouldSendThrottleKey(key, cooldown, now, path) {
124
+ const state = readThrottleState(path);
125
+ const previous = typeof state[key] === "number" ? state[key] : 0;
126
+ if (now - previous < cooldown)
127
+ return false;
128
+ state[key] = now;
129
+ writeThrottleState(path, state);
130
+ return true;
131
+ }
132
+ function isTestLikeToolArgs(args) {
133
+ const command = isRecord(args) && typeof args.command === "string" ? args.command.slice(0, 300) : "";
134
+ return /\b(test|vitest|jest|pytest|npm\s+test|pnpm\s+test|yarn\s+test|cargo\s+test|go\s+test)\b/i.test(command);
135
+ }
136
+ function getEventType(event) {
137
+ if (!isRecord(event))
138
+ return undefined;
139
+ if (typeof event.type === "string")
140
+ return event.type;
141
+ if (isRecord(event.payload) && typeof event.payload.type === "string")
142
+ return event.payload.type;
143
+ return undefined;
144
+ }
145
+ function getEventStatusType(event) {
146
+ if (!isRecord(event))
147
+ return undefined;
148
+ const properties = isRecord(event.properties) ? event.properties : isRecord(event.payload) && isRecord(event.payload.properties) ? event.payload.properties : undefined;
149
+ const status = isRecord(properties?.status) ? properties.status : undefined;
150
+ return typeof status?.type === "string" ? status.type : undefined;
151
+ }
152
+ function getEventPermission(event) {
153
+ if (!isRecord(event))
154
+ return undefined;
155
+ const properties = isRecord(event.properties) ? event.properties : isRecord(event.payload) && isRecord(event.payload.properties) ? event.payload.properties : undefined;
156
+ if (typeof properties?.permission === "string")
157
+ return properties.permission;
158
+ if (Array.isArray(properties?.patterns)) {
159
+ const hit = properties.patterns.find((pattern) => typeof pattern === "string" && shouldIgnoreOpenPetsTool(pattern));
160
+ if (typeof hit === "string")
161
+ return hit;
162
+ }
163
+ return undefined;
164
+ }
165
+ function readThrottleState(path) {
166
+ try {
167
+ const parsed = JSON.parse(readFileSync(path, "utf8"));
168
+ if (!isRecord(parsed))
169
+ return {};
170
+ const state = {};
171
+ for (const [key, value] of Object.entries(parsed)) {
172
+ if ((key === "thinking" || key === "success" || key === "error" || key === "permission" || key.startsWith("reaction:")) && typeof value === "number" && Number.isFinite(value))
173
+ state[key] = value;
174
+ }
175
+ return state;
176
+ }
177
+ catch {
178
+ return {};
179
+ }
180
+ }
181
+ function writeThrottleState(path, state) {
182
+ try {
183
+ mkdirSync(dirname(path), { recursive: true, mode: 0o700 });
184
+ const tempPath = `${path}.${process.pid}.tmp`;
185
+ writeFileSync(tempPath, `${JSON.stringify(state)}\n`, { encoding: "utf8", mode: 0o600 });
186
+ renameSync(tempPath, path);
187
+ }
188
+ catch {
189
+ // Best effort only; throttling must never break hooks.
190
+ }
191
+ }
192
+ function defaultSchedule(work) {
193
+ queueMicrotask(() => { void work(); });
194
+ }
195
+ function sanitizeDebugError(error) {
196
+ const message = error instanceof Error ? error.message : String(error);
197
+ return message
198
+ .replace(/(?:[A-Za-z]:)?[\\/][^\s"']{2,}/g, "<path>")
199
+ .replace(/\b(api[_-]?key|secret|password|token)\s*[:=]\s*\S+/gi, "$1=<redacted>")
200
+ .slice(0, 200);
201
+ }
202
+ function safeUid() {
203
+ try {
204
+ return String(userInfo().uid);
205
+ }
206
+ catch {
207
+ return "user";
208
+ }
209
+ }
210
+ function isRecord(value) {
211
+ return typeof value === "object" && value !== null;
212
+ }
213
+ //# sourceMappingURL=opencode-plugin-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-plugin-runtime.js","sourceRoot":"","sources":["../src/opencode-plugin-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ export declare const openCodeMcpServerName = "openpets";
2
+ export declare const openPetsCliPackageName = "@burmese/cli";
3
+ export type OpenCodeCommandMode = "published" | "local" | "bundled";
4
+ export interface OpenCodeMcpEntry {
5
+ readonly type: "local";
6
+ readonly command: readonly string[];
7
+ readonly enabled: true;
8
+ readonly environment?: Record<string, string>;
9
+ }
10
+ export interface OpenCodePreviewOptions {
11
+ readonly cliVersion: string;
12
+ readonly petId?: string;
13
+ readonly commandMode?: OpenCodeCommandMode;
14
+ readonly cliEntryPath?: string;
15
+ readonly environment?: Record<string, string>;
16
+ }
17
+ export declare function validateOpenPetsPetArg(value: string): string;
18
+ export declare function buildOpenCodeMcpEntry(options: OpenCodePreviewOptions): OpenCodeMcpEntry;
19
+ export declare function buildOpenCodeInstructionPath(scope: "project" | "global", configDir?: string): string;
20
+ export type OpenCodePluginSpec = string | readonly [string, {
21
+ readonly pet?: string;
22
+ }];
23
+ export declare function buildOpenCodePluginPreview(petId?: string, packageVersion?: string): OpenCodePluginSpec;
24
+ export declare function formatOpenCodeMcpConfig(options: OpenCodePreviewOptions): Record<string, unknown>;
25
+ //# sourceMappingURL=opencode-previews.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-previews.d.ts","sourceRoot":"","sources":["../src/opencode-previews.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,aAAa,CAAC;AAChD,eAAO,MAAM,sBAAsB,iBAAiB,CAAC;AACrD,MAAM,MAAM,mBAAmB,GAAG,WAAW,GAAG,OAAO,GAAG,SAAS,CAAC;AAEpE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC/C;AAED,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAK5D;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,gBAAgB,CASvF;AAED,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,SAAS,GAAG,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAIpG;AAED,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEvF,wBAAgB,0BAA0B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAGtG;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,sBAAsB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEhG"}
@@ -0,0 +1,37 @@
1
+ import { isAbsolute, join } from "node:path";
2
+ export const openCodeMcpServerName = "openpets";
3
+ export const openPetsCliPackageName = "@burmese/cli";
4
+ export function validateOpenPetsPetArg(value) {
5
+ const trimmed = value.trim();
6
+ if (trimmed !== value || trimmed.length < 1)
7
+ throw new Error("Invalid OpenPets pet id.");
8
+ if (!/^[a-z0-9][a-z0-9_-]{0,63}$/.test(trimmed))
9
+ throw new Error("Invalid OpenPets pet id.");
10
+ return trimmed;
11
+ }
12
+ export function buildOpenCodeMcpEntry(options) {
13
+ const petArgs = options.petId === undefined ? [] : ["--pet", validateOpenPetsPetArg(options.petId)];
14
+ const mode = options.commandMode ?? "published";
15
+ const environment = options.environment && Object.keys(options.environment).length > 0 ? { environment: options.environment } : {};
16
+ if (mode === "local" || mode === "bundled") {
17
+ if (!options.cliEntryPath || !isAbsolute(options.cliEntryPath))
18
+ throw new Error("OpenCode local MCP preview requires an absolute CLI entry path.");
19
+ return { type: "local", command: ["node", options.cliEntryPath, "mcp", ...petArgs], enabled: true, ...environment };
20
+ }
21
+ return { type: "local", command: ["npx", "-y", `${openPetsCliPackageName}@${options.cliVersion}`, "mcp", ...petArgs], enabled: true, ...environment };
22
+ }
23
+ export function buildOpenCodeInstructionPath(scope, configDir) {
24
+ if (scope === "project")
25
+ return ".opencode/openpets.md";
26
+ if (!configDir)
27
+ throw new Error("Global OpenCode instruction path requires config directory.");
28
+ return join(configDir, "openpets.md");
29
+ }
30
+ export function buildOpenCodePluginPreview(petId, packageVersion) {
31
+ const spec = packageVersion ? `@burmese/opencode@${packageVersion}` : "@burmese/opencode";
32
+ return petId === undefined ? spec : [spec, { pet: validateOpenPetsPetArg(petId) }];
33
+ }
34
+ export function formatOpenCodeMcpConfig(options) {
35
+ return { mcp: { [openCodeMcpServerName]: buildOpenCodeMcpEntry(options) } };
36
+ }
37
+ //# sourceMappingURL=opencode-previews.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-previews.js","sourceRoot":"","sources":["../src/opencode-previews.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,cAAc,CAAC;AAkBrD,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,OAAO,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IACzF,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,OAAO,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC7F,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,OAA+B;IACnE,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACpG,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,IAAI,WAAW,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACnI,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QAC3C,IAAI,CAAC,OAAO,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,iEAAiE,CAAC,CAAC;QACnJ,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,YAAY,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;IACtH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,sBAAsB,IAAI,OAAO,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;AACxJ,CAAC;AAED,MAAM,UAAU,4BAA4B,CAAC,KAA2B,EAAE,SAAkB;IAC1F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,uBAAuB,CAAC;IACxD,IAAI,CAAC,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;AACxC,CAAC;AAID,MAAM,UAAU,0BAA0B,CAAC,KAAc,EAAE,cAAuB;IAChF,MAAM,IAAI,GAAG,cAAc,CAAC,CAAC,CAAC,qBAAqB,cAAc,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAC1F,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,GAAG,EAAE,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAA+B;IACrE,OAAO,EAAE,GAAG,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;AAC9E,CAAC"}
@@ -0,0 +1,27 @@
1
+ import { type PlannedWrite } from "./opencode-config.js";
2
+ import { type OpenCodeCommandMode } from "./opencode-previews.js";
3
+ export interface PrepareOpenCodeProjectSetupOptions {
4
+ readonly projectDir: string;
5
+ readonly petId: string;
6
+ readonly cliVersion: string;
7
+ readonly commandMode?: OpenCodeCommandMode;
8
+ readonly cliEntryPath?: string;
9
+ }
10
+ export interface PreparedOpenCodeProjectSetup {
11
+ readonly projectDir: string;
12
+ readonly petId: string;
13
+ readonly configPath: string;
14
+ readonly instructionPath: string;
15
+ readonly configWrite: PlannedWrite;
16
+ readonly instructionWrite: PlannedTextWrite;
17
+ }
18
+ export interface PlannedTextWrite {
19
+ readonly targetPath: string;
20
+ readonly backupPath?: string;
21
+ readonly tempPath: string;
22
+ readonly content: string;
23
+ }
24
+ export declare function prepareOpenCodeProjectSetup(options: PrepareOpenCodeProjectSetupOptions): PreparedOpenCodeProjectSetup;
25
+ export declare function writePreparedOpenCodeProjectSetup(prepared: PreparedOpenCodeProjectSetup): void;
26
+ export declare function createOpenPetsInstructionBlock(): string;
27
+ //# sourceMappingURL=opencode-project-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-project-setup.d.ts","sourceRoot":"","sources":["../src/opencode-project-setup.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsJ,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC7M,OAAO,EAA2G,KAAK,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAG3K,MAAM,WAAW,kCAAkC;IACjD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,mBAAmB,CAAC;IAC3C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,EAAE,YAAY,CAAC;IACnC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;CAC7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAMD,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,kCAAkC,GAAG,4BAA4B,CAqCrH;AAED,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,4BAA4B,GAAG,IAAI,CAG9F;AAED,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD"}
@@ -0,0 +1,180 @@
1
+ import { chmodSync, closeSync, existsSync, lstatSync, mkdirSync, openSync, readFileSync, renameSync, writeFileSync } from "node:fs";
2
+ import { dirname, isAbsolute, join, relative } from "node:path";
3
+ import { randomUUID } from "node:crypto";
4
+ import { executePlannedWrite, getProjectOpenCodeConfigPaths, parseOpenCodeConfig, planOpenCodeConfigWrite, readOpenCodeConfigFile, updateOpenCodeConfigText } from "./opencode-config.js";
5
+ import { buildOpenCodeInstructionPath, buildOpenCodeMcpEntry, buildOpenCodePluginPreview, validateOpenPetsPetArg } from "./opencode-previews.js";
6
+ import { classifyOpenCodeInstructionsStatus, classifyOpenCodeMcpStatus, classifyOpenCodePluginStatus, isManagedOpenPetsMcpEntry, isManagedOpenPetsPluginEntry } from "./opencode-status.js";
7
+ const maxInstructionBytes = 1024 * 1024;
8
+ const openPetsStart = "<!-- OPENPETS:START -->";
9
+ const openPetsEnd = "<!-- OPENPETS:END -->";
10
+ export function prepareOpenCodeProjectSetup(options) {
11
+ const petId = validateOpenPetsPetArg(options.petId);
12
+ const paths = getProjectOpenCodeConfigPaths(options.projectDir);
13
+ const existingConfigs = paths.candidates.flatMap((path) => {
14
+ if (!existsSync(path))
15
+ return [];
16
+ assertSafeProjectLocalPath(options.projectDir, path, "OpenCode config");
17
+ const parsed = readOpenCodeConfigFile(path);
18
+ if (!parsed.ok)
19
+ throw new Error(parsed.message);
20
+ return [{ path, config: parsed.value }];
21
+ });
22
+ const configs = existingConfigs.map((entry) => entry.config);
23
+ const instructionRelPath = buildOpenCodeInstructionPath("project");
24
+ const instructionPath = join(options.projectDir, instructionRelPath);
25
+ assertSafeProjectLocalPath(options.projectDir, instructionPath, "OpenCode instruction");
26
+ const instructionContent = existsSync(instructionPath) ? readSafeInstructionFile(instructionPath) : "";
27
+ const mcpStatus = classifyOpenCodeMcpStatus(configs, { cliVersion: options.cliVersion, petId, commandMode: options.commandMode, cliEntryPath: options.cliEntryPath });
28
+ const instructionStatus = classifyOpenCodeInstructionsStatus(configs, "project", undefined, { [instructionRelPath]: instructionContent });
29
+ const pluginStatus = classifyOpenCodePluginStatus(configs, petId, options.cliVersion);
30
+ for (const status of [mcpStatus, instructionStatus, pluginStatus]) {
31
+ if (status.status === "custom" || status.status === "conflict" || status.status === "error")
32
+ throw new Error(`${status.message} Edit or remove the custom OpenPets OpenCode entry, then rerun setup.`);
33
+ }
34
+ const selectedPath = selectWriteTarget(paths.candidates, existingConfigs, paths.defaultCreatePath);
35
+ const selectedText = existsSync(selectedPath) ? readFileSync(selectedPath, "utf8") : "{}\n";
36
+ const parsedSelected = parseOpenCodeConfig(selectedText);
37
+ if (!parsedSelected.ok)
38
+ throw new Error(parsedSelected.message);
39
+ const nextConfig = buildNextConfig(parsedSelected.value, petId, options);
40
+ const nextText = updateOpenCodeConfigText(selectedText, [
41
+ { path: ["mcp"], value: nextConfig.mcp },
42
+ { path: ["instructions"], value: nextConfig.instructions },
43
+ { path: ["plugin"], value: nextConfig.plugin },
44
+ ]);
45
+ if (typeof nextText !== "string")
46
+ throw new Error(nextText.message);
47
+ const configWrite = planOpenCodeConfigWrite(options.projectDir, selectedPath, nextText);
48
+ if ("ok" in configWrite)
49
+ throw new Error(configWrite.message);
50
+ const instructionWrite = planInstructionWrite(options.projectDir, instructionPath, upsertOpenPetsInstructionBlock(instructionContent));
51
+ return { projectDir: options.projectDir, petId, configPath: selectedPath, instructionPath, configWrite, instructionWrite };
52
+ }
53
+ export function writePreparedOpenCodeProjectSetup(prepared) {
54
+ executeTextWrite(prepared.instructionWrite);
55
+ executePlannedWrite(prepared.configWrite);
56
+ }
57
+ export function createOpenPetsInstructionBlock() {
58
+ return `${openPetsStart}\n## OpenPets\n\nOpenPets MCP tools may be available.\n\nUse OpenPets as a short visible status channel for meaningful coding progress:\n- Use \`burmese_say\` when starting, completing, blocking, or needing review on non-trivial work.\n- Keep messages brief, user-facing, and non-sensitive.\n- Do not include code, logs, secrets, URLs, or file paths.\n- Use \`burmese_react\` for small visual or emotional feedback.\n- Use \`burmese_status\` only when checking availability or the targeted pet.\n- Do not spam every internal step.\n${openPetsEnd}\n`;
59
+ }
60
+ function buildNextConfig(config, petId, options) {
61
+ const mcp = isRecord(config.mcp) ? { ...config.mcp } : {};
62
+ mcp.openpets = buildOpenCodeMcpEntry({ cliVersion: options.cliVersion, petId, commandMode: options.commandMode, cliEntryPath: options.cliEntryPath });
63
+ const instructionPath = buildOpenCodeInstructionPath("project");
64
+ const instructions = [...new Set([...(Array.isArray(config.instructions) ? config.instructions.filter((entry) => typeof entry === "string") : []), instructionPath])];
65
+ const pluginSpec = buildOpenCodePluginPreview(petId, options.cliVersion);
66
+ const plugin = [...(Array.isArray(config.plugin) ? config.plugin.filter((entry) => !isManagedOpenPetsPluginEntry(entry)) : []), pluginSpec];
67
+ return { mcp, instructions, plugin };
68
+ }
69
+ function selectWriteTarget(candidates, existing, fallback) {
70
+ const owners = existing.filter((entry) => hasManagedOpenPetsEntry(entry.config)).map((entry) => entry.path);
71
+ const uniqueOwners = [...new Set(owners)];
72
+ if (uniqueOwners.length > 1)
73
+ throw new Error("OpenCode has OpenPets entries in multiple config files. Remove duplicates, then rerun setup.");
74
+ if (uniqueOwners.length === 1)
75
+ return uniqueOwners[0] ?? fallback;
76
+ return candidates.find((candidate) => existing.some((entry) => entry.path === candidate)) ?? fallback;
77
+ }
78
+ function planInstructionWrite(projectDir, targetPath, content) {
79
+ assertSafeProjectLocalPath(projectDir, targetPath, "OpenCode instruction");
80
+ if (existsSync(targetPath)) {
81
+ const stat = lstatSync(targetPath);
82
+ if (stat.isSymbolicLink() || !stat.isFile())
83
+ throw new Error("OpenCode instruction path must be a safe regular file.");
84
+ if (stat.size > maxInstructionBytes)
85
+ throw new Error("OpenCode instruction file is too large.");
86
+ }
87
+ const parent = dirname(targetPath);
88
+ if (existsSync(parent)) {
89
+ const stat = lstatSync(parent);
90
+ if (stat.isSymbolicLink() || !stat.isDirectory())
91
+ throw new Error("OpenCode instruction directory is unsafe.");
92
+ }
93
+ const stamp = `${process.pid}-${Date.now()}-${randomUUID()}`;
94
+ return { targetPath, backupPath: existsSync(targetPath) ? `${targetPath}.openpets-backup-${stamp}.md` : undefined, tempPath: join(parent, `.openpets-${stamp}.tmp`), content };
95
+ }
96
+ function executeTextWrite(plan) {
97
+ const parent = dirname(plan.targetPath);
98
+ if (existsSync(parent)) {
99
+ const parentStat = lstatSync(parent);
100
+ if (parentStat.isSymbolicLink() || !parentStat.isDirectory())
101
+ throw new Error("OpenCode instruction directory is unsafe.");
102
+ }
103
+ if (existsSync(plan.targetPath)) {
104
+ const targetStat = lstatSync(plan.targetPath);
105
+ if (targetStat.isSymbolicLink() || !targetStat.isFile())
106
+ throw new Error("OpenCode instruction path must be a safe regular file.");
107
+ if (targetStat.size > maxInstructionBytes)
108
+ throw new Error("OpenCode instruction file is too large.");
109
+ }
110
+ if (plan.backupPath && dirname(plan.backupPath) !== parent)
111
+ throw new Error("OpenCode instruction backup path is unsafe.");
112
+ if (dirname(plan.tempPath) !== parent)
113
+ throw new Error("OpenCode instruction temp path is unsafe.");
114
+ mkdirSync(dirname(plan.targetPath), { recursive: true, mode: 0o700 });
115
+ if (plan.backupPath && existsSync(plan.targetPath)) {
116
+ const backup = openSync(plan.backupPath, "wx", 0o600);
117
+ try {
118
+ writeFileSync(backup, readFileSync(plan.targetPath));
119
+ }
120
+ finally {
121
+ closeSync(backup);
122
+ }
123
+ }
124
+ const fd = openSync(plan.tempPath, "wx", 0o600);
125
+ try {
126
+ writeFileSync(fd, plan.content, "utf8");
127
+ }
128
+ finally {
129
+ closeSync(fd);
130
+ }
131
+ renameSync(plan.tempPath, plan.targetPath);
132
+ try {
133
+ chmodSync(plan.targetPath, 0o600);
134
+ }
135
+ catch { /* best effort */ }
136
+ }
137
+ function readSafeInstructionFile(path) {
138
+ const stat = lstatSync(path);
139
+ if (stat.isSymbolicLink() || !stat.isFile())
140
+ throw new Error("OpenCode instruction path must be a safe regular file.");
141
+ if (stat.size > maxInstructionBytes)
142
+ throw new Error("OpenCode instruction file is too large.");
143
+ return readFileSync(path, "utf8");
144
+ }
145
+ function assertSafeProjectLocalPath(projectDir, targetPath, label) {
146
+ const rel = relative(projectDir, targetPath);
147
+ if (rel.startsWith("..") || isAbsolute(rel))
148
+ throw new Error(`${label} path escapes the project.`);
149
+ const parts = rel.split(/[\\/]+/).filter(Boolean);
150
+ let current = projectDir;
151
+ for (let index = 0; index < parts.length - 1; index += 1) {
152
+ current = join(current, parts[index] ?? "");
153
+ if (!existsSync(current))
154
+ continue;
155
+ const stat = lstatSync(current);
156
+ if (stat.isSymbolicLink() || !stat.isDirectory())
157
+ throw new Error(`${label} parent directory is unsafe.`);
158
+ }
159
+ }
160
+ function upsertOpenPetsInstructionBlock(source) {
161
+ const withoutBlock = source.replace(new RegExp(`${escapeRegExp(openPetsStart)}[\\s\\S]*?${escapeRegExp(openPetsEnd)}\\n?`, "g"), "").replace(/\n{3,}/g, "\n\n").replace(/\s*$/u, "");
162
+ const block = createOpenPetsInstructionBlock();
163
+ return withoutBlock ? `${withoutBlock}\n\n${block}` : block;
164
+ }
165
+ function hasManagedOpenPetsEntry(config) {
166
+ if (isRecord(config.mcp) && isManagedOpenPetsMcpEntry(config.mcp.openpets))
167
+ return true;
168
+ if (Array.isArray(config.instructions) && config.instructions.some((entry) => entry === buildOpenCodeInstructionPath("project")))
169
+ return true;
170
+ if (Array.isArray(config.plugin) && config.plugin.some(isManagedOpenPetsPluginEntry))
171
+ return true;
172
+ return false;
173
+ }
174
+ function escapeRegExp(value) {
175
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
176
+ }
177
+ function isRecord(value) {
178
+ return typeof value === "object" && value !== null && !Array.isArray(value);
179
+ }
180
+ //# sourceMappingURL=opencode-project-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"opencode-project-setup.js","sourceRoot":"","sources":["../src/opencode-project-setup.ts"],"names":[],"mappings":"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"}