opencode-sat 0.0.15 → 0.0.16-next.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 (57) hide show
  1. package/dist/sat.d.ts.map +1 -1
  2. package/dist/sat.js +16 -25
  3. package/dist/sat.js.map +1 -1
  4. package/dist/src/append.d.ts +12 -9
  5. package/dist/src/append.d.ts.map +1 -1
  6. package/dist/src/append.js +32 -37
  7. package/dist/src/append.js.map +1 -1
  8. package/dist/src/format-prompt.d.ts.map +1 -1
  9. package/dist/src/format-prompt.js +39 -30
  10. package/dist/src/format-prompt.js.map +1 -1
  11. package/dist/src/format.d.ts +16 -0
  12. package/dist/src/format.d.ts.map +1 -0
  13. package/dist/src/format.js +30 -0
  14. package/dist/src/format.js.map +1 -0
  15. package/dist/src/process.d.ts +7 -9
  16. package/dist/src/process.d.ts.map +1 -1
  17. package/dist/src/process.js +8 -30
  18. package/dist/src/process.js.map +1 -1
  19. package/dist/src/tools.d.ts +24 -15
  20. package/dist/src/tools.d.ts.map +1 -1
  21. package/dist/src/tools.js +135 -159
  22. package/dist/src/tools.js.map +1 -1
  23. package/dist/src/utils/compare.d.ts.map +1 -1
  24. package/dist/src/utils/compare.js +4 -2
  25. package/dist/src/utils/compare.js.map +1 -1
  26. package/dist/src/utils/validate.d.ts.map +1 -1
  27. package/dist/src/utils/validate.js +4 -2
  28. package/dist/src/utils/validate.js.map +1 -1
  29. package/package.json +3 -3
  30. package/dist/src/opencode/notify.d.ts +0 -10
  31. package/dist/src/opencode/notify.d.ts.map +0 -1
  32. package/dist/src/opencode/notify.js +0 -14
  33. package/dist/src/opencode/notify.js.map +0 -1
  34. package/dist/src/process-prompt.d.ts +0 -21
  35. package/dist/src/process-prompt.d.ts.map +0 -1
  36. package/dist/src/process-prompt.js +0 -20
  37. package/dist/src/process-prompt.js.map +0 -1
  38. package/dist/src/prompt-prompt.d.ts +0 -3
  39. package/dist/src/prompt-prompt.d.ts.map +0 -1
  40. package/dist/src/prompt-prompt.js +0 -27
  41. package/dist/src/prompt-prompt.js.map +0 -1
  42. package/dist/src/prompt.d.ts +0 -7
  43. package/dist/src/prompt.d.ts.map +0 -1
  44. package/dist/src/prompt.js +0 -71
  45. package/dist/src/prompt.js.map +0 -1
  46. package/dist/src/session.d.ts +0 -23
  47. package/dist/src/session.d.ts.map +0 -1
  48. package/dist/src/session.js +0 -116
  49. package/dist/src/session.js.map +0 -1
  50. package/dist/src/utils/extractLlmError.d.ts +0 -13
  51. package/dist/src/utils/extractLlmError.d.ts.map +0 -1
  52. package/dist/src/utils/extractLlmError.js +0 -12
  53. package/dist/src/utils/extractLlmError.js.map +0 -1
  54. package/dist/src/utils/stripCodeFences.d.ts +0 -2
  55. package/dist/src/utils/stripCodeFences.d.ts.map +0 -1
  56. package/dist/src/utils/stripCodeFences.js +0 -9
  57. package/dist/src/utils/stripCodeFences.js.map +0 -1
package/dist/src/tools.js CHANGED
@@ -1,18 +1,16 @@
1
1
  import { tool } from '@opencode-ai/plugin';
2
2
  import { basename } from 'node:path';
3
3
  import { appendRules } from "./append.js";
4
- import { sendResult } from "./opencode/notify.js";
4
+ import { formatPrompt } from "./format-prompt.js";
5
+ import { isFormatMode } from "./format.js";
5
6
  import { processFile } from "./process.js";
6
- import { processPrompt } from "./process-prompt.js";
7
- import { isFormatMode } from "./prompt.js";
7
+ import { ParsedPromptSchema, promptSchemaExample } from "./prompt-schema.js";
8
8
  import { resolveFiles } from "./resolve.js";
9
- import { detectModel, promptWithRetry } from "./session.js";
9
+ import { ParsedSchema, parseSchemaExample } from "./rule-schema.js";
10
10
  import { buildTable } from "./utils/compare.js";
11
- import { safeAsync } from "./utils/safe.js";
11
+ import { formatValidationError, validateJson } from "./utils/validate.js";
12
12
  const ERROR_LABELS = {
13
13
  readError: 'Read failed',
14
- parseError: 'Parse failed',
15
- formatError: 'Format failed',
16
14
  writeError: 'Write failed',
17
15
  };
18
16
  const toTableRow = (result) => {
@@ -30,86 +28,98 @@ const toTableRow = (result) => {
30
28
  status: label,
31
29
  };
32
30
  };
33
- const createSession = async (options) => {
34
- const model = await detectModel(options.client, options.sessionID);
35
- if (!model) {
36
- return {
37
- ok: false,
38
- error: 'Could not detect current model. Send a message first, then call ' + options.toolName + '.',
39
- };
40
- }
41
- const sessionResult = await options.client.session.create({ body: { title: options.title } });
42
- if (!sessionResult.data) {
43
- return {
44
- ok: false,
45
- error: 'Failed to create internal session',
46
- };
47
- }
48
- const sessionId = sessionResult.data.id;
49
- const prompt = (text, schema) => (promptWithRetry({
50
- client: options.client,
51
- sessionId,
52
- initialPrompt: text,
53
- schema,
54
- model,
55
- }));
56
- return {
57
- ok: true,
58
- sessionId,
59
- prompt,
60
- };
31
+ const RULE_SCHEMA_DESC = [
32
+ 'Array of parsed rules. Each rule: {',
33
+ ' strength: obligatory|permissible|forbidden|optional|supererogatory|indifferent|omissible,',
34
+ ' action: imperative verb describing what to do,',
35
+ ' target: what the action applies to,',
36
+ ' context: (optional) when/where the rule applies,',
37
+ ' reason: why the rule exists',
38
+ '}',
39
+ 'Example: ' + parseSchemaExample,
40
+ ].join('\n');
41
+ const TASK_SCHEMA_DESC = [
42
+ 'Array of parsed tasks. Each task: {',
43
+ ' intent: clear directive of what to do,',
44
+ ' targets: files/systems involved (default []),',
45
+ ' constraints: conditions/requirements (default []),',
46
+ ' context: (optional) background rationale,',
47
+ ' subtasks: nested tasks (default [])',
48
+ '}',
49
+ 'Example: ' + promptSchemaExample,
50
+ ].join('\n');
51
+ export const createDiscoverTool = (options) => {
52
+ return tool({
53
+ description: options.description,
54
+ args: {
55
+ files: tool.schema
56
+ .string()
57
+ .optional()
58
+ .describe('Comma-separated file paths to read instead of discovering from opencode.json'),
59
+ },
60
+ async execute(args) {
61
+ const resolved = await resolveFiles(options.directory, args.files);
62
+ if (resolved.error !== null) {
63
+ return resolved.error;
64
+ }
65
+ if (resolved.data.length === 0) {
66
+ return 'No instruction files found';
67
+ }
68
+ for (const file of resolved.data) {
69
+ options.discovered.add(file.path);
70
+ }
71
+ const sections = resolved.data.map((file) => {
72
+ if (file.error) {
73
+ return '## ' + file.path + '\n\nError: ' + file.error;
74
+ }
75
+ if (file.content.length === 0) {
76
+ return '## ' + file.path + '\n\n(empty file)';
77
+ }
78
+ return '## ' + file.path + '\n\n' + file.content;
79
+ });
80
+ return sections.join('\n\n---\n\n');
81
+ },
82
+ });
61
83
  };
62
84
  export const createRewriteTool = (options) => {
63
85
  return tool({
64
86
  description: options.description,
65
87
  args: {
66
- mode: tool.schema.string().optional().describe('Output format: verbose, balanced, or concise (default: balanced)'),
67
- files: tool.schema.string().optional().describe('Comma-separated file paths to process instead of discovering from opencode.json'),
88
+ rules: tool.schema.string().describe(RULE_SCHEMA_DESC),
89
+ mode: tool.schema
90
+ .string()
91
+ .optional()
92
+ .describe('Output format: verbose, balanced, or concise (default: balanced)'),
93
+ files: tool.schema
94
+ .string()
95
+ .optional()
96
+ .describe('Comma-separated file paths to process instead of discovering from opencode.json'),
68
97
  },
69
98
  async execute(args, context) {
99
+ if (options.discovered.size === 0) {
100
+ return 'Call discover-instructions first to read the instruction files before rewriting.';
101
+ }
70
102
  const mode = isFormatMode(args.mode) ? args.mode : 'balanced';
71
- try {
72
- const resolved = await resolveFiles(options.deps.directory, args.files);
73
- if (resolved.error !== null) {
74
- return resolved.error;
75
- }
76
- const session = await createSession({
77
- client: options.deps.client,
78
- sessionID: context.sessionID,
79
- title: 'SAT Rewrite',
80
- toolName: 'rewrite-instructions',
81
- });
82
- if (!session.ok) {
83
- return session.error;
84
- }
85
- const fileResults = [];
86
- for (const file of resolved.data) {
87
- if (context.abort.aborted) {
88
- break;
89
- }
90
- fileResults.push(await processFile({
91
- file,
92
- prompt: session.prompt,
93
- mode,
94
- }));
103
+ const validated = validateJson(args.rules, ParsedSchema);
104
+ if (validated.error !== null) {
105
+ return formatValidationError(validated);
106
+ }
107
+ const resolved = await resolveFiles(options.directory, args.files);
108
+ if (resolved.error !== null) {
109
+ return resolved.error;
110
+ }
111
+ const fileResults = [];
112
+ for (const file of resolved.data) {
113
+ if (context.abort.aborted) {
114
+ break;
95
115
  }
96
- await safeAsync(() => options.deps.client.session.delete({
97
- path: { id: session.sessionId },
116
+ fileResults.push(await processFile({
117
+ file,
118
+ rules: validated.data,
119
+ mode,
98
120
  }));
99
- const table = buildTable(fileResults.map(toTableRow));
100
- if (table.length > 0) {
101
- await sendResult({
102
- client: options.deps.client,
103
- sessionID: context.sessionID,
104
- text: table,
105
- });
106
- }
107
- return table;
108
- }
109
- catch (err) {
110
- const msg = err instanceof Error ? err.message : String(err);
111
- return 'rewrite-instructions error: ' + msg;
112
121
  }
122
+ return buildTable(fileResults.map(toTableRow));
113
123
  },
114
124
  });
115
125
  };
@@ -117,63 +127,49 @@ export const createAppendTool = (options) => {
117
127
  return tool({
118
128
  description: options.description,
119
129
  args: {
120
- input: tool.schema.string().describe('Unstructured text describing the rule(s) to add'),
121
- file: tool.schema.string().optional().describe('File path to append to. If omitted, uses the first discovered instruction file.'),
122
- ...(options.hasMode
123
- ? {
124
- mode: tool.schema.string().optional().describe('Output format: verbose, balanced, or concise (default: balanced)'),
125
- }
126
- : {}),
130
+ input: tool.schema
131
+ .string()
132
+ .describe('The original unstructured text that was parsed into rules'),
133
+ rules: tool.schema.string().describe(RULE_SCHEMA_DESC),
134
+ file: tool.schema
135
+ .string()
136
+ .optional()
137
+ .describe('File path to append to. If omitted, uses the first discovered instruction file.'),
138
+ mode: tool.schema
139
+ .string()
140
+ .optional()
141
+ .describe('Output format: verbose, balanced, or concise (default: balanced)'),
127
142
  },
128
- async execute(args, context) {
129
- const mode = options.hasMode && isFormatMode(args.mode) ? args.mode : options.defaultMode;
130
- try {
131
- let filePath = args.file;
132
- if (!filePath) {
133
- const resolved = await resolveFiles(options.deps.directory);
134
- if (resolved.error !== null) {
135
- return resolved.error;
136
- }
137
- const first = resolved.data[0];
138
- if (!first) {
139
- return 'No instruction files found in opencode.json';
140
- }
141
- filePath = first.path;
142
- }
143
- const session = await createSession({
144
- client: options.deps.client,
145
- sessionID: context.sessionID,
146
- title: options.sessionTitle,
147
- toolName: options.toolName,
148
- });
149
- if (!session.ok) {
150
- return session.error;
143
+ async execute(args) {
144
+ if (options.discovered.size === 0) {
145
+ return 'Call discover-instructions first to read the instruction files before appending.';
146
+ }
147
+ const mode = isFormatMode(args.mode) ? args.mode : 'balanced';
148
+ const validated = validateJson(args.rules, ParsedSchema);
149
+ if (validated.error !== null) {
150
+ return formatValidationError(validated);
151
+ }
152
+ let filePath = args.file;
153
+ if (!filePath) {
154
+ const resolved = await resolveFiles(options.directory);
155
+ if (resolved.error !== null) {
156
+ return resolved.error;
151
157
  }
152
- const result = await appendRules({
153
- input: args.input,
154
- filePath,
155
- directory: options.deps.directory,
156
- prompt: session.prompt,
157
- mode,
158
- });
159
- await safeAsync(() => options.deps.client.session.delete({
160
- path: { id: session.sessionId },
161
- }));
162
- if (result.status !== 'success') {
163
- return result.status + ': ' + result.error;
158
+ const first = resolved.data[0];
159
+ if (!first) {
160
+ return 'No instruction files found in opencode.json';
164
161
  }
165
- const msg = options.successPrefix + result.rulesCount + ' rule(s) to ' + result.path;
166
- await sendResult({
167
- client: options.deps.client,
168
- sessionID: context.sessionID,
169
- text: msg,
170
- });
171
- return msg;
162
+ filePath = first.path;
172
163
  }
173
- catch (err) {
174
- const msg = err instanceof Error ? err.message : String(err);
175
- return options.toolName + ' error: ' + msg;
164
+ const result = await appendRules({
165
+ filePath,
166
+ rules: validated.data,
167
+ mode,
168
+ });
169
+ if (result.status !== 'success') {
170
+ return result.status + ': ' + result.error;
176
171
  }
172
+ return 'Added ' + result.rulesCount + ' rule(s) to ' + result.path;
177
173
  },
178
174
  });
179
175
  };
@@ -181,40 +177,20 @@ export const createRefineTool = (options) => {
181
177
  return tool({
182
178
  description: options.description,
183
179
  args: {
184
- input: tool.schema.string().describe('Raw unstructured user input to refine into a structured prompt'),
180
+ input: tool.schema.string()
181
+ .describe('The original unstructured user input that was decomposed'),
182
+ tasks: tool.schema.string().describe(TASK_SCHEMA_DESC),
185
183
  },
186
- async execute(args, context) {
187
- try {
188
- const session = await createSession({
189
- client: options.deps.client,
190
- sessionID: context.sessionID,
191
- title: 'SAT Refine',
192
- toolName: 'refine-prompt',
193
- });
194
- if (!session.ok) {
195
- return session.error;
196
- }
197
- const result = await processPrompt({
198
- input: args.input,
199
- prompt: session.prompt,
200
- });
201
- await safeAsync(() => options.deps.client.session.delete({
202
- path: { id: session.sessionId },
203
- }));
204
- if (result.status !== 'success') {
205
- return 'refine-prompt parse error: ' + result.error;
206
- }
207
- await sendResult({
208
- client: options.deps.client,
209
- sessionID: context.sessionID,
210
- text: result.formatted,
211
- });
212
- return result.formatted;
184
+ async execute(args) {
185
+ const validated = validateJson(args.tasks, ParsedPromptSchema);
186
+ if (validated.error !== null) {
187
+ return formatValidationError(validated);
213
188
  }
214
- catch (err) {
215
- const msg = err instanceof Error ? err.message : String(err);
216
- return 'refine-prompt error: ' + msg;
189
+ const formatted = formatPrompt(validated.data);
190
+ if (formatted.length === 0) {
191
+ return 'No tasks found in the parsed input';
217
192
  }
193
+ return formatted;
218
194
  },
219
195
  });
220
196
  };
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAmB,WAAW,EAAiB,MAAM,cAAc,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAmB,YAAY,EAAE,MAAM,aAAa,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAiB,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAS3C,MAAM,YAAY,GAA2B;IAC3C,SAAS,EAAE,aAAa;IACxB,UAAU,EAAE,cAAc;IAC1B,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE,cAAc;CAC3B,CAAA;AAED,MAAM,UAAU,GAAG,CAAC,MAAkB,EAAY,EAAE;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAChC,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,SAAS;YACjB,KAAK,EAAE,MAAM,CAAC,UAAU;YACxB,UAAU,EAAE,MAAM,CAAC,UAAU;SAC9B,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,CAAA;IAE1D,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC;QAC3B,MAAM,EAAE,KAAK;KACd,CAAA;AACH,CAAC,CAAA;AAsBD,MAAM,aAAa,GAAG,KAAK,EAAE,OAA6B,EAAgC,EAAE;IAC1F,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IAClE,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,kEAAkE,GAAG,OAAO,CAAC,QAAQ,GAAG,GAAG;SACnG,CAAA;IACH,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;IAC7F,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QACxB,OAAO;YACL,EAAE,EAAE,KAAK;YACT,KAAK,EAAE,mCAAmC;SAC3C,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,EAAE,CAAA;IAEvC,MAAM,MAAM,GAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,CACzC,eAAe,CAAC;QACd,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS;QACT,aAAa,EAAE,IAAI;QACnB,MAAM;QACN,KAAK;KACN,CAAC,CACH,CAAA;IAED,OAAO;QACL,EAAE,EAAE,IAAI;QACR,SAAS;QACT,MAAM;KACP,CAAA;AACH,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,OAA2B,EAAE,EAAE;IAC/D,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,kEAAkE,CACnE;YACD,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC7C,iFAAiF,CAClF;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAA;YAE7D,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;gBACvE,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC5B,OAAO,QAAQ,CAAC,KAAK,CAAA;gBACvB,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;oBAClC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,KAAK,EAAE,aAAa;oBACpB,QAAQ,EAAE,sBAAsB;iBACjC,CAAC,CAAA;gBACF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,OAAO,CAAC,KAAK,CAAA;gBACtB,CAAC;gBAED,MAAM,WAAW,GAAiB,EAAE,CAAA;gBAEpC,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;oBACjC,IAAI,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;wBAC1B,MAAK;oBACP,CAAC;oBAED,WAAW,CAAC,IAAI,CAAC,MAAM,WAAW,CAAC;wBACjC,IAAI;wBACJ,MAAM,EAAE,OAAO,CAAC,MAAM;wBACtB,IAAI;qBACL,CAAC,CAAC,CAAA;gBACL,CAAC;gBAED,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBACvD,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;iBAChC,CAAC,CAAC,CAAA;gBAEH,MAAM,KAAK,GAAG,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAA;gBAErD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACrB,MAAM,UAAU,CAAC;wBACf,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;wBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;wBAC5B,IAAI,EAAE,KAAK;qBACZ,CAAC,CAAA;gBACJ,CAAC;gBAED,OAAO,KAAK,CAAA;YACd,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC5D,OAAO,8BAA8B,GAAG,GAAG,CAAA;YAC7C,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAYD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,EAAE;IAC7D,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAClC,iDAAiD,CAClD;YACD,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,iFAAiF,CAClF;YACD,GAAG,CAAC,OAAO,CAAC,OAAO;gBACjB,CAAC,CAAC;oBACA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAC5C,kEAAkE,CACnE;iBACF;gBACD,CAAC,CAAC,EAAE,CAAC;SACR;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,IAAI,GAAe,OAAO,CAAC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAA;YAErG,IAAI,CAAC;gBACH,IAAI,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAA;gBAExB,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACd,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC3D,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;wBAC5B,OAAO,QAAQ,CAAC,KAAK,CAAA;oBACvB,CAAC;oBAED,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;oBAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,OAAO,6CAA6C,CAAA;oBACtD,CAAC;oBAED,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAA;gBACvB,CAAC;gBAED,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;oBAClC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,KAAK,EAAE,OAAO,CAAC,YAAY;oBAC3B,QAAQ,EAAE,OAAO,CAAC,QAAQ;iBAC3B,CAAC,CAAA;gBACF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,OAAO,CAAC,KAAK,CAAA;gBACtB,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC;oBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,QAAQ;oBACR,SAAS,EAAE,OAAO,CAAC,IAAI,CAAC,SAAS;oBACjC,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,IAAI;iBACL,CAAC,CAAA;gBAEF,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBACvD,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;iBAChC,CAAC,CAAC,CAAA;gBAEH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,MAAM,CAAC,MAAM,GAAG,IAAI,GAAG,MAAM,CAAC,KAAK,CAAA;gBAC5C,CAAC;gBAED,MAAM,GAAG,GAAG,OAAO,CAAC,aAAa,GAAG,MAAM,CAAC,UAAU,GAAG,cAAc,GAAG,MAAM,CAAC,IAAI,CAAA;gBAEpF,MAAM,UAAU,CAAC;oBACf,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,IAAI,EAAE,GAAG;iBACV,CAAC,CAAA;gBAEF,OAAO,GAAG,CAAA;YACZ,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC5D,OAAO,OAAO,CAAC,QAAQ,GAAG,UAAU,GAAG,GAAG,CAAA;YAC5C,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAOD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,OAA0B,EAAE,EAAE;IAC7D,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAClC,gEAAgE,CACjE;SACF;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC;oBAClC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE,eAAe;iBAC1B,CAAC,CAAA;gBACF,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;oBAChB,OAAO,OAAO,CAAC,KAAK,CAAA;gBACtB,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;oBACjC,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB,CAAC,CAAA;gBAEF,MAAM,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;oBACvD,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;iBAChC,CAAC,CAAC,CAAA;gBAEH,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBAChC,OAAO,6BAA6B,GAAG,MAAM,CAAC,KAAK,CAAA;gBACrD,CAAC;gBAED,MAAM,UAAU,CAAC;oBACf,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM;oBAC3B,SAAS,EAAE,OAAO,CAAC,SAAS;oBAC5B,IAAI,EAAE,MAAM,CAAC,SAAS;iBACvB,CAAC,CAAA;gBAEF,OAAO,MAAM,CAAC,SAAS,CAAA;YACzB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBAC5D,OAAO,uBAAuB,GAAG,GAAG,CAAA;YACtC,CAAC;QACH,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/tools.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/utils/compare.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAGD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,gBAahF,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAGD,eAAO,MAAM,SAAS,GAAI,SAAS,gBAAgB,EAAE,KAAG,iBAYvD,CAAA;AAqBD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B,CAAA;AAGD,eAAO,MAAM,UAAU,GAAI,MAAM,QAAQ,EAAE,KAAG,MAwE7C,CAAA"}
1
+ {"version":3,"file":"compare.d.ts","sourceRoot":"","sources":["../../../src/utils/compare.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,aAAa,EAAE,MAAM,CAAA;CACtB,CAAA;AAGD,eAAO,MAAM,YAAY,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,EAAE,WAAW,MAAM,KAAG,gBAahF,CAAA;AAQD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,MAAM,CAAA;IACvB,kBAAkB,EAAE,MAAM,CAAA;CAC3B,CAAA;AAGD,eAAO,MAAM,SAAS,GAAI,SAAS,gBAAgB,EAAE,KAAG,iBAYvD,CAAA;AAqBD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,UAAU,CAAC,EAAE,gBAAgB,CAAA;CAC9B,CAAA;AAGD,eAAO,MAAM,UAAU,GAAI,MAAM,QAAQ,EAAE,KAAG,MA0E7C,CAAA"}
@@ -109,8 +109,10 @@ export const buildTable = (rows) => {
109
109
  return lines.join('\n');
110
110
  }
111
111
  const summary = (totals.totalDifference > 0 ? 'SAVED ' : 'INCREASED ')
112
- + Math.abs(totals.totalDifference) + ' bytes ('
113
- + Math.abs(totals.totalPercentChange).toFixed(1) + '%)';
112
+ + Math.abs(totals.totalDifference)
113
+ + ' bytes ('
114
+ + Math.abs(totals.totalPercentChange).toFixed(1)
115
+ + '%)';
114
116
  return lines.join('\n') + '\n\n' + summary;
115
117
  };
116
118
  //# sourceMappingURL=compare.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/utils/compare.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"compare.js","sourceRoot":"","sources":["../../../src/utils/compare.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/utils/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAG5B,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,QAAQ,CAAA;IACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;CAC3B,CAAA;AAED,KAAK,kBAAkB,CAAC,CAAC,IAAI,mBAAmB,CAAC,CAAC,CAAC,GAAG,sBAAsB,GAAG,uBAAuB,CAAA;AAEtG,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAG,kBAAkB,CAAC,CAAC,CAsBxF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,sBAAsB,GAAG,uBAAuB,KAAG,MAQhG,CAAA"}
1
+ {"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/utils/validate.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAG5B,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,IAAI,EAAE,CAAC,CAAA;IACP,KAAK,EAAE,IAAI,CAAA;CACZ,CAAA;AAED,KAAK,sBAAsB,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,OAAO,CAAA;CACf,CAAA;AAED,KAAK,uBAAuB,GAAG;IAC7B,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,QAAQ,CAAA;IACf,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAA;CAC3B,CAAA;AAED,KAAK,kBAAkB,CAAC,CAAC,IACrB,mBAAmB,CAAC,CAAC,CAAC,GACtB,sBAAsB,GACtB,uBAAuB,CAAA;AAE3B,eAAO,MAAM,YAAY,GAAI,CAAC,EAAE,MAAM,MAAM,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAG,kBAAkB,CAAC,CAAC,CAsBxF,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,QAAQ,sBAAsB,GAAG,uBAAuB,KAAG,MAYhG,CAAA"}
@@ -24,7 +24,9 @@ export const formatValidationError = (result) => {
24
24
  if (result.error === 'parse') {
25
25
  return 'Invalid JSON. Return valid JSON.';
26
26
  }
27
- const issues = result.issues.map((i) => ' - ' + i.path.join('.') + ': ' + i.message).join('\n');
28
- return 'Schema validation failed:\n' + issues + '\n\nFix the issues and try again.';
27
+ const issues = result.issues
28
+ .map((i) => ' - ' + i.path.join('.') + ': ' + i.message)
29
+ .join('\n');
30
+ return ('Schema validation failed:\n' + issues + '\n\nFix the issues and try again.');
29
31
  };
30
32
  //# sourceMappingURL=validate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utils/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAoB7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,IAAY,EAAE,MAAoB,EAAyB,EAAE;IAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAChD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,OAAO;SACf,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;SAC5B,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,IAAI;KACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAwD,EAAU,EAAE;IACxG,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,kCAAkC,CAAA;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEhG,OAAO,6BAA6B,GAAG,MAAM,GAAG,mCAAmC,CAAA;AACrF,CAAC,CAAA"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/utils/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAuB7B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAI,IAAY,EAAE,MAAoB,EAAyB,EAAE;IAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAA;IAChD,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;QACtB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,OAAO;SACf,CAAA;IACH,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IACjD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,KAAK,EAAE,QAAQ;YACf,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM;SAC5B,CAAA;IACH,CAAC;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,IAAI;QACjB,KAAK,EAAE,IAAI;KACZ,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,MAAwD,EAAU,EAAE;IACxG,IAAI,MAAM,CAAC,KAAK,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,kCAAkC,CAAA;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM;SACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,CAAC;SACxD,IAAI,CAAC,IAAI,CAAC,CAAA;IAEb,OAAO,CACL,6BAA6B,GAAG,MAAM,GAAG,mCAAmC,CAC7E,CAAA;AACH,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-sat",
3
- "version": "0.0.15",
3
+ "version": "0.0.16-next.0",
4
4
  "description": "OpenCode plugin that converts unstructured instructions into structured rules using speech act theory and deontic logic.",
5
5
  "keywords": [
6
6
  "opencode",
@@ -39,9 +39,9 @@
39
39
  "scripts": {
40
40
  "build": "npm run clean && tsc",
41
41
  "clean": "rm -rf dist",
42
- "test": "bun test",
43
42
  "fmt": "bun run dprint fmt",
44
- "prepublishOnly": "npm run build"
43
+ "prepublishOnly": "npm run build",
44
+ "test": "bun test"
45
45
  },
46
46
  "dependencies": {
47
47
  "cli-table3": "^0.6.5",
@@ -1,10 +0,0 @@
1
- import type { PluginInput } from '@opencode-ai/plugin';
2
- type Client = PluginInput['client'];
3
- type SendResultOptions = {
4
- client: Client;
5
- sessionID: string;
6
- text: string;
7
- };
8
- export declare const sendResult: (options: SendResultOptions) => Promise<void>;
9
- export {};
10
- //# sourceMappingURL=notify.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify.d.ts","sourceRoot":"","sources":["../../../src/opencode/notify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAEtD,KAAK,MAAM,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAA;AAEnC,KAAK,iBAAiB,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,KAAG,OAAO,CAAC,IAAI,CAYzE,CAAA"}
@@ -1,14 +0,0 @@
1
- export const sendResult = async (options) => {
2
- await options.client.session.prompt({
3
- path: { id: options.sessionID },
4
- body: {
5
- noReply: true,
6
- parts: [{
7
- type: 'text',
8
- text: options.text,
9
- ignored: true,
10
- }],
11
- },
12
- });
13
- };
14
- //# sourceMappingURL=notify.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/opencode/notify.ts"],"names":[],"mappings":"AAUA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAAiB,EAAE;IAC5E,MAAM,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE;QAC/B,IAAI,EAAE;YACJ,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,CAAC;oBACN,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE,OAAO,CAAC,IAAI;oBAClB,OAAO,EAAE,IAAI;iBACd,CAAC;SACH;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,21 +0,0 @@
1
- import type { z } from 'zod';
2
- import type { Result } from './utils/safe';
3
- import type { ParsedPrompt } from './prompt-schema';
4
- type PromptFn = <T>(prompt: string, schema: z.ZodType<T>) => Promise<Result<T>>;
5
- type ProcessPromptOptions = {
6
- input: string;
7
- prompt: PromptFn;
8
- };
9
- type PromptSuccess = {
10
- status: 'success';
11
- formatted: string;
12
- parsed: ParsedPrompt;
13
- };
14
- type PromptParseError = {
15
- status: 'parseError';
16
- error: string;
17
- };
18
- type PromptResult = PromptSuccess | PromptParseError;
19
- export declare const processPrompt: (options: ProcessPromptOptions) => Promise<PromptResult>;
20
- export {};
21
- //# sourceMappingURL=process-prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-prompt.d.ts","sourceRoot":"","sources":["../../src/process-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAKnD,KAAK,QAAQ,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;AAE/E,KAAK,oBAAoB,GAAG;IAC1B,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,QAAQ,CAAA;CACjB,CAAA;AAED,KAAK,aAAa,GAAG;IACnB,MAAM,EAAE,SAAS,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,YAAY,CAAA;CACrB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,YAAY,CAAA;IACpB,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAED,KAAK,YAAY,GAAG,aAAa,GAAG,gBAAgB,CAAA;AAEpD,eAAO,MAAM,aAAa,GAAU,SAAS,oBAAoB,KAAG,OAAO,CAAC,YAAY,CAiBvF,CAAA"}
@@ -1,20 +0,0 @@
1
- import { ParsedPromptSchema } from './prompt-schema';
2
- import { buildPromptParsePrompt } from './prompt-prompt';
3
- import { formatPrompt } from './format-prompt';
4
- export const processPrompt = async (options) => {
5
- const parsePrompt = buildPromptParsePrompt(options.input);
6
- const parseResult = await options.prompt(parsePrompt, ParsedPromptSchema);
7
- if (!parseResult.data) {
8
- return {
9
- status: 'parseError',
10
- error: parseResult.error,
11
- };
12
- }
13
- const formatted = formatPrompt(parseResult.data);
14
- return {
15
- status: 'success',
16
- formatted,
17
- parsed: parseResult.data,
18
- };
19
- };
20
- //# sourceMappingURL=process-prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"process-prompt.js","sourceRoot":"","sources":["../../src/process-prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAsB9C,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,OAA6B,EAAyB,EAAE;IAC1F,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IACzD,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAA;IACzE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,OAAO;YACL,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,WAAW,CAAC,KAAK;SACzB,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAEhD,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,SAAS;QACT,MAAM,EAAE,WAAW,CAAC,IAAI;KACzB,CAAA;AACH,CAAC,CAAA"}
@@ -1,3 +0,0 @@
1
- export declare const buildPromptParsePrompt: (input: string) => string;
2
- export declare const buildPromptRetryPrompt: (errorMessage: string) => string;
3
- //# sourceMappingURL=prompt-prompt.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-prompt.d.ts","sourceRoot":"","sources":["../../src/prompt-prompt.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,sBAAsB,GAAI,OAAO,MAAM,KAAG,MAsBtD,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,cAAc,MAAM,KAAG,MAE7D,CAAA"}
@@ -1,27 +0,0 @@
1
- import { promptSchemaExample } from './prompt-schema';
2
- export const buildPromptParsePrompt = (input) => {
3
- const instructions = [
4
- 'Always respond with raw JSON text only.',
5
- 'Never use tools.',
6
- 'Never call functions.',
7
- '',
8
- 'Decompose the user input below into a structured task hierarchy.',
9
- 'Each task has: intent (imperative verb phrase), targets (array), constraints (array), context (optional string), subtasks (recursive array).',
10
- 'Separate compound requests into multiple top-level tasks.',
11
- 'Preserve file names, variable names, and technical terms exactly.',
12
- 'Drop filler words and verbal noise.',
13
- '',
14
- 'Return JSON matching this schema:',
15
- promptSchemaExample,
16
- ];
17
- return [
18
- instructions.join('\n'),
19
- '---',
20
- 'User input:',
21
- input,
22
- ].join('\n');
23
- };
24
- export const buildPromptRetryPrompt = (errorMessage) => {
25
- return 'Invalid response: ' + errorMessage + '\n\nAlways respond with raw JSON text only. Never use tools. Never wrap in code fences.';
26
- };
27
- //# sourceMappingURL=prompt-prompt.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prompt-prompt.js","sourceRoot":"","sources":["../../src/prompt-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAA;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,KAAa,EAAU,EAAE;IAC9D,MAAM,YAAY,GAAG;QACnB,yCAAyC;QACzC,kBAAkB;QAClB,uBAAuB;QACvB,EAAE;QACF,kEAAkE;QAClE,8IAA8I;QAC9I,2DAA2D;QAC3D,mEAAmE;QACnE,qCAAqC;QACrC,EAAE;QACF,mCAAmC;QACnC,mBAAmB;KACpB,CAAA;IAED,OAAO;QACL,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;QACvB,KAAK;QACL,aAAa;QACb,KAAK;KACN,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,YAAoB,EAAU,EAAE;IACrE,OAAO,oBAAoB,GAAG,YAAY,GAAG,yFAAyF,CAAA;AACxI,CAAC,CAAA"}