opencode-sat 0.0.16-next.1 → 0.0.16-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -76,32 +76,32 @@ functions provide lexical this binding and a more compact syntax.
76
76
 
77
77
  **verbose** - Full Rule/Reason pairs for every rule.
78
78
  ```
79
- Rule: Always use return await when returning promises from async functions.
79
+ Rule: Use return await when returning promises from async functions.
80
80
  Reason: Provides better stack traces and error handling.
81
81
 
82
82
  Rule: Use arrow functions as the standard function syntax.
83
83
  Reason: Arrow functions provide lexical this binding and a more compact syntax.
84
84
 
85
- Rule: Never use function declarations or function expressions.
85
+ Rule: Do not use function declarations or function expressions.
86
86
  Reason: Arrow functions are the standard syntax for the project.
87
87
  ```
88
88
 
89
89
  **balanced** (default) - The LLM decides which rules need reasons.
90
90
  ```
91
- Rule: Always use return await when returning promises from async functions.
91
+ Rule: Use return await when returning promises from async functions.
92
92
  Reason: Provides better stack traces and error handling.
93
93
 
94
94
  Rule: Use arrow functions as the standard function syntax.
95
95
 
96
- Rule: Never use function declarations or function expressions.
96
+ Rule: Do not use function declarations or function expressions.
97
97
  Reason: Arrow functions provide lexical this binding and a more compact syntax.
98
98
  ```
99
99
 
100
100
  **concise** - Bullet list of directives only, no reasons.
101
101
  ```
102
- - Always use return await when returning promises from async functions.
102
+ - Use return await when returning promises from async functions.
103
103
  - Use arrow functions as the standard function syntax.
104
- - Never use function declarations or function expressions.
104
+ - Do not use function declarations or function expressions.
105
105
  ```
106
106
 
107
107
  ### Prompt Pipeline
@@ -168,6 +168,18 @@ type ParsedRule = {
168
168
  }
169
169
  ```
170
170
 
171
+ The `strength` field maps to deontic operators. The critical relationship is F(A) = O(not-A): a forbidden action must be negated in expression.
172
+
173
+ | Strength | Operator | Expression |
174
+ |---|---|---|
175
+ | obligatory | O(A) | positive imperative: "use consistent whitespace" |
176
+ | forbidden | F(A) = O(not-A) | negate with "do not": "do not use non-null assertions" |
177
+ | permissible | P(A) | prefix with "may": "may use type assertions when necessary" |
178
+ | optional | P(A) and P(not-A) | prefix with "may choose to": "may choose to add commit body" |
179
+ | supererogatory | beyond O(A) | prefix with "ideally": "ideally provide comprehensive documentation" |
180
+ | indifferent | P(A) and P(not-A) | prefix with "either way is fine": "either way is fine for naming style" |
181
+ | omissible | P(not-A) | prefix with "may omit": "may omit post-task explanations" |
182
+
171
183
  ### Prompt Formatting (action/planning logic, performative directives)
172
184
 
173
185
  Prompts request a specific one-shot action. They are not standing rules but immediate instructions. The formal framework is closer to [action languages](https://en.wikipedia.org/wiki/Action_language) from AI planning (STRIPS, ADL, HTN): what the goal is, what must be true before acting, and what changes after.
package/dist/sat.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../sat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAUjD,QAAA,MAAM,MAAM,EAAE,MAoFb,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"sat.d.ts","sourceRoot":"","sources":["../sat.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAWjD,QAAA,MAAM,MAAM,EAAE,MAyGb,CAAA;AAED,eAAe,MAAM,CAAA"}
package/dist/sat.js CHANGED
@@ -1,6 +1,7 @@
1
+ import { DEONTIC_STRENGTHS, MODE_FORMATS, NEGATION_SIGNALS } from "./src/tools/descriptions.js";
1
2
  import { createFormatPromptTool, createParsePromptTool } from "./src/tools/prompts.js";
2
3
  import { createAddTool, createDiscoverTool, createFormatRulesTool, createParseRulesTool, createRewriteTool, } from "./src/tools/rules.js";
3
- const plugin = async ({ directory }) => {
4
+ const plugin = async ({ directory, client }) => {
4
5
  const discovered = new Set();
5
6
  return {
6
7
  tool: {
@@ -19,6 +20,15 @@ const plugin = async ({ directory }) => {
19
20
  '- The rules parameter is required and must be a JSON string matching the schema described in the parameter.',
20
21
  '- Validates the parsed rules against the schema and returns the validated JSON.',
21
22
  '- Call this tool AFTER discover-rules and BEFORE format-rules.',
23
+ '',
24
+ 'Extract each rule into: strength, action (verb), target (object), context (optional condition), reason.',
25
+ 'Each parsed rule must correspond to the original instruction without adding extra details.',
26
+ '',
27
+ 'Detect deontic strength from input signals:',
28
+ NEGATION_SIGNALS,
29
+ '',
30
+ 'Strength determines enforcement:',
31
+ DEONTIC_STRENGTHS,
22
32
  ].join('\n'),
23
33
  }),
24
34
  'format-rules': createFormatRulesTool({
@@ -27,14 +37,24 @@ const plugin = async ({ directory }) => {
27
37
  '- Express deontic strength naturally: obligatory as positive imperative, forbidden as negated imperative (do not), permissible as "may".',
28
38
  '- Optionally accept a mode parameter (verbose, balanced, or concise) to control formatting.',
29
39
  '- Default to balanced mode when no mode is specified.',
30
- '- For verbose and balanced modes, each rule string must include "Rule: " prefix and "\\nReason: " suffix.',
31
- '- For concise mode, use "- " prefix with directive only, no reasons.',
32
40
  '- The rules parameter is required and must be a JSON string matching the schema described in the parameter.',
33
41
  '- Validates the formatted rules and returns the validated JSON.',
34
42
  '- Call this tool AFTER parse-rules and BEFORE rewrite-rules or add-rules.',
43
+ '',
44
+ 'Strength determines how the rule is expressed:',
45
+ DEONTIC_STRENGTHS,
46
+ '',
47
+ 'CRITICAL: forbidden + action "use" MUST produce "do not use ...", never "use ...".',
48
+ '',
49
+ 'Output format per mode:',
50
+ MODE_FORMATS,
51
+ '',
52
+ 'For verbose and balanced modes, each rule string must include "Rule: " prefix and "\\nReason: " suffix.',
53
+ 'For concise mode, use "- " prefix with directive only, no reasons.',
35
54
  ].join('\n'),
36
55
  }),
37
56
  'rewrite-rules': createRewriteTool({
57
+ client,
38
58
  directory,
39
59
  discovered,
40
60
  description: [
@@ -47,6 +67,7 @@ const plugin = async ({ directory }) => {
47
67
  ].join('\n'),
48
68
  }),
49
69
  'add-rules': createAddTool({
70
+ client,
50
71
  directory,
51
72
  discovered,
52
73
  description: [
@@ -68,6 +89,7 @@ const plugin = async ({ directory }) => {
68
89
  ].join('\n'),
69
90
  }),
70
91
  'format-prompt': createFormatPromptTool({
92
+ client,
71
93
  description: [
72
94
  '- Render validated tasks from parse-prompt into a formatted markdown tree view.',
73
95
  '- The tasks parameter is required and must be a JSON string matching the schema described in the parameter.',
package/dist/sat.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sat.js","sourceRoot":"","sources":["../sat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACtF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,GAAW,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAEpC,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB,EAAE,kBAAkB,CAAC;gBACnC,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE;oBACX,gEAAgE;oBAChE,0EAA0E;oBAC1E,4FAA4F;iBAC7F,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,aAAa,EAAE,oBAAoB,CAAC;gBAClC,WAAW,EAAE;oBACX,yFAAyF;oBACzF,6GAA6G;oBAC7G,iFAAiF;oBACjF,gEAAgE;iBACjE,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,cAAc,EAAE,qBAAqB,CAAC;gBACpC,WAAW,EAAE;oBACX,qFAAqF;oBACrF,0IAA0I;oBAC1I,6FAA6F;oBAC7F,uDAAuD;oBACvD,2GAA2G;oBAC3G,sEAAsE;oBACtE,6GAA6G;oBAC7G,iEAAiE;oBACjE,2EAA2E;iBAC5E,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,eAAe,EAAE,iBAAiB,CAAC;gBACjC,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE;oBACX,oGAAoG;oBACpG,6GAA6G;oBAC7G,6FAA6F;oBAC7F,uDAAuD;oBACvD,4GAA4G;oBAC5G,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,WAAW,EAAE,aAAa,CAAC;gBACzB,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE;oBACX,8GAA8G;oBAC9G,6GAA6G;oBAC7G,6FAA6F;oBAC7F,uDAAuD;oBACvD,8EAA8E;oBAC9E,wFAAwF;oBACxF,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,cAAc,EAAE,qBAAqB,CAAC;gBACpC,WAAW,EAAE;oBACX,iGAAiG;oBACjG,6GAA6G;oBAC7G,iFAAiF;oBACjF,wCAAwC;iBACzC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,eAAe,EAAE,sBAAsB,CAAC;gBACtC,WAAW,EAAE;oBACX,iFAAiF;oBACjF,6GAA6G;oBAC7G,4DAA4D;oBAC5D,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;SACH;KACF,CAAA;AACH,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"sat.js","sourceRoot":"","sources":["../sat.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAC/F,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AACtF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,MAAM,MAAM,GAAW,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE;IACrD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAA;IAEpC,OAAO;QACL,IAAI,EAAE;YACJ,gBAAgB,EAAE,kBAAkB,CAAC;gBACnC,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE;oBACX,gEAAgE;oBAChE,0EAA0E;oBAC1E,4FAA4F;iBAC7F,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,aAAa,EAAE,oBAAoB,CAAC;gBAClC,WAAW,EAAE;oBACX,yFAAyF;oBACzF,6GAA6G;oBAC7G,iFAAiF;oBACjF,gEAAgE;oBAChE,EAAE;oBACF,yGAAyG;oBACzG,4FAA4F;oBAC5F,EAAE;oBACF,6CAA6C;oBAC7C,gBAAgB;oBAChB,EAAE;oBACF,kCAAkC;oBAClC,iBAAiB;iBAClB,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,cAAc,EAAE,qBAAqB,CAAC;gBACpC,WAAW,EAAE;oBACX,qFAAqF;oBACrF,0IAA0I;oBAC1I,6FAA6F;oBAC7F,uDAAuD;oBACvD,6GAA6G;oBAC7G,iEAAiE;oBACjE,2EAA2E;oBAC3E,EAAE;oBACF,gDAAgD;oBAChD,iBAAiB;oBACjB,EAAE;oBACF,oFAAoF;oBACpF,EAAE;oBACF,yBAAyB;oBACzB,YAAY;oBACZ,EAAE;oBACF,yGAAyG;oBACzG,oEAAoE;iBACrE,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,eAAe,EAAE,iBAAiB,CAAC;gBACjC,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE;oBACX,oGAAoG;oBACpG,6GAA6G;oBAC7G,6FAA6F;oBAC7F,uDAAuD;oBACvD,4GAA4G;oBAC5G,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,WAAW,EAAE,aAAa,CAAC;gBACzB,MAAM;gBACN,SAAS;gBACT,UAAU;gBACV,WAAW,EAAE;oBACX,8GAA8G;oBAC9G,6GAA6G;oBAC7G,6FAA6F;oBAC7F,uDAAuD;oBACvD,8EAA8E;oBAC9E,wFAAwF;oBACxF,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,cAAc,EAAE,qBAAqB,CAAC;gBACpC,WAAW,EAAE;oBACX,iGAAiG;oBACjG,6GAA6G;oBAC7G,iFAAiF;oBACjF,wCAAwC;iBACzC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;YAEF,eAAe,EAAE,sBAAsB,CAAC;gBACtC,MAAM;gBACN,WAAW,EAAE;oBACX,iFAAiF;oBACjF,6GAA6G;oBAC7G,4DAA4D;oBAC5D,sCAAsC;iBACvC,CAAC,IAAI,CAAC,IAAI,CAAC;aACb,CAAC;SACH;KACF,CAAA;AACH,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -18,7 +18,7 @@ const readConfig = async (directory) => {
18
18
  };
19
19
  }
20
20
  const instructions = parseResult.data.instructions;
21
- if (!instructions || !Array.isArray(instructions) || instructions.length === 0) {
21
+ if (!Array.isArray(instructions) || instructions.length === 0) {
22
22
  return {
23
23
  data: null,
24
24
  error: 'No "instructions" array found in ' + configPath,
@@ -36,7 +36,7 @@ const readConfig = async (directory) => {
36
36
  error: null,
37
37
  };
38
38
  };
39
- const resolveFiles = async (directory, patterns) => {
39
+ const matchPatterns = async (directory, patterns) => {
40
40
  const seen = new Set();
41
41
  const files = [];
42
42
  for (const pattern of patterns) {
@@ -83,7 +83,7 @@ export const discover = async (directory) => {
83
83
  };
84
84
  }
85
85
  const patterns = config.data;
86
- const files = await resolveFiles(directory, patterns);
86
+ const files = await matchPatterns(directory, patterns);
87
87
  if (files.length === 0) {
88
88
  return {
89
89
  data: null,
@@ -1 +1 @@
1
- {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/discover.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discover.js","sourceRoot":"","sources":["../../src/discover.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"format-prompt.d.ts","sourceRoot":"","sources":["../../src/format-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,oBAAoB,CAAA;AAoHlE,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,KAAG,MA8BnD,CAAA"}
1
+ {"version":3,"file":"format-prompt.d.ts","sourceRoot":"","sources":["../../src/format-prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,oBAAoB,CAAA;AAoHlE,eAAO,MAAM,YAAY,GAAI,QAAQ,YAAY,KAAG,MAmCnD,CAAA"}
@@ -90,9 +90,13 @@ export const formatPrompt = (parsed) => {
90
90
  return lines.join('\n');
91
91
  }
92
92
  const flat = flatten(nodes);
93
+ const first = flat[0];
94
+ if (!first) {
95
+ return '';
96
+ }
93
97
  const root = {
94
- label: flat[0]?.label ?? '',
95
- metaLines: flat[0]?.metaLines ?? [],
98
+ label: first.label,
99
+ metaLines: first.metaLines,
96
100
  children: flat.slice(1),
97
101
  };
98
102
  const rootPrefix = root.children.length > 0 ? '┌ ' : '';
@@ -1 +1 @@
1
- {"version":3,"file":"format-prompt.js","sourceRoot":"","sources":["../../src/format-prompt.ts"],"names":[],"mappings":"AAeA,MAAM,SAAS,GAAG,CAAC,OAAyB,EAAY,EAAE;IACxD,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAA;IACxE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;IAEvB,MAAM,SAAS,GAAkB,EAAE,CAAA;IAEnC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,SAAS,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,SAAS,CAAC,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACzE,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACzB,SAAS,CAAC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;IAED,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QACrD,OAAO,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,CAAA;IAC/D,CAAC,CAAC,CAAA;IAEF,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AACvC,CAAC,CAAA;AAED,MAAM,OAAO,GAAG,CAAC,KAAsB,EAAmB,EAAE;IAC1D,MAAM,MAAM,GAAoB,EAAE,CAAA;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAA;QAE3E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC,CAAA;AAQD,MAAM,UAAU,GAAG,CAAC,OAAsB,EAAiB,EAAE;IAC3D,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;IACpD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAA;IACrD,MAAM,KAAK,GAAkB,CAAC,SAAS,CAAC,CAAA;IAExC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IACnD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAA;IAChD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;IACpC,MAAM,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;IACzD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAEhF,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,CAAA;IAC5B,CAAC;IAED,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,CAAA;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAA;YACtC,IAAI,CAAC,KAAK;gBAAE,SAAQ;YAEpB,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,GAAG,CAAC,CAAA;YACvC,CAAC;YAED,MAAM,MAAM,GAAG,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;YACrD,MAAM,gBAAgB,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAA;YAElD,IAAI,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAA;YACtC,SAAS,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAE3C,IAAI,YAAY,GAAG,EAAE,CAAA;YACrB,IAAI,MAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC/B,YAAY,GAAG,KAAK,CAAA;YACtB,CAAC;iBAAM,IAAI,MAAM,EAAE,CAAC;gBAClB,YAAY,GAAG,MAAM,CAAA;YACvB,CAAC;iBAAM,IAAI,gBAAgB,EAAE,CAAC;gBAC5B,YAAY,GAAG,KAAK,CAAA;YACtB,CAAC;iBAAM,CAAC;gBACN,YAAY,GAAG,MAAM,CAAA;YACvB,CAAC;YAED,MAAM,UAAU,GAAG,UAAU,CAAC;gBAC5B,IAAI,EAAE,KAAK;gBACX,MAAM,EAAE,OAAO,CAAC,WAAW,GAAG,SAAS;gBACvC,WAAW,EAAE,OAAO,CAAC,WAAW,GAAG,YAAY;aAChD,CAAC,CAAA;YAEF,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAA;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,MAAoB,EAAU,EAAE;IAC3D,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,MAAM,OAAO,GAAY,EAAE,KAAK,EAAE,CAAC,EAAE,CAAA;IACrC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;IACtE,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,GAAG,CAAC,CAAA;IAEpC,IAAI,UAAU,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,MAAM,KAAK,GAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEzC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAClC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACzB,CAAC;IAED,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IAE3B,MAAM,IAAI,GAAa;QACrB,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,EAAE;QAC3B,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,IAAI,EAAE;QACnC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;KACxB,CAAA;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAA;IACvD,OAAO,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACnF,CAAC,CAAA"}
1
+ {"version":3,"file":"format-prompt.js","sourceRoot":"","sources":["../../src/format-prompt.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { PluginInput } from '@opencode-ai/plugin';
2
+ type SendResultOptions = {
3
+ client: PluginInput['client'];
4
+ sessionID: string;
5
+ text: string;
6
+ };
7
+ export declare const sendResult: (options: SendResultOptions) => Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=notify.d.ts.map
@@ -0,0 +1 @@
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,iBAAiB,GAAG;IACvB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;CACb,CAAA;AAED,eAAO,MAAM,UAAU,GAAU,SAAS,iBAAiB,kBAY1D,CAAA"}
@@ -0,0 +1,14 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notify.js","sourceRoot":"","sources":["../../../src/opencode/notify.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAE,OAA0B,EAAE,EAAE;IAC7D,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"}
@@ -7,9 +7,6 @@ export declare const ParsedTaskSchema: z.ZodType<ParsedTask>;
7
7
  export declare const ParsedPromptSchema: z.ZodObject<{
8
8
  tasks: z.ZodArray<z.ZodType<ParsedTask, unknown, z.core.$ZodTypeInternals<ParsedTask, unknown>>>;
9
9
  }, z.core.$strip>;
10
- export declare const FormattedPromptSchema: z.ZodObject<{
11
- prompt: z.ZodString;
12
- }, z.core.$strip>;
13
10
  export type ParsedTask = {
14
11
  intent: string;
15
12
  targets: Array<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-schema.d.ts","sourceRoot":"","sources":["../../src/prompt-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,YAAY,aACgC,CAAA;AAEzD,eAAO,MAAM,iBAAiB,yBACmB,CAAA;AAEjD,eAAO,MAAM,iBAAiB,yBACyB,CAAA;AAEvD,eAAO,MAAM,iBAAiB,aAC0B,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAOkB,CAAA;AAErE,eAAO,MAAM,kBAAkB;;iBAE7B,CAAA;AAEF,eAAO,MAAM,qBAAqB;;iBAEhC,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,mBAAmB,QAQ9B,CAAA"}
1
+ {"version":3,"file":"prompt-schema.d.ts","sourceRoot":"","sources":["../../src/prompt-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,YAAY,aACgC,CAAA;AAEzD,eAAO,MAAM,iBAAiB,yBACmB,CAAA;AAEjD,eAAO,MAAM,iBAAiB,yBACyB,CAAA;AAEvD,eAAO,MAAM,iBAAiB,aAC0B,CAAA;AAExD,eAAO,MAAM,gBAAgB,EAAE,CAAC,CAAC,OAAO,CAAC,UAAU,CAOkB,CAAA;AAErE,eAAO,MAAM,kBAAkB;;iBAE7B,CAAA;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IACtB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAA;AAE7D,eAAO,MAAM,mBAAmB,QAQ9B,CAAA"}
@@ -18,9 +18,6 @@ export const ParsedTaskSchema = z.object({
18
18
  export const ParsedPromptSchema = z.object({
19
19
  tasks: z.array(ParsedTaskSchema),
20
20
  });
21
- export const FormattedPromptSchema = z.object({
22
- prompt: z.string().describe('Human-readable restructured prompt'),
23
- });
24
21
  export const promptSchemaExample = JSON.stringify({
25
22
  tasks: [{
26
23
  intent: IntentSchema.description || 'directive',
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-schema.js","sourceRoot":"","sources":["../../src/prompt-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,QAAQ,CAAC,4CAA4C,CAAC,CAAA;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjD,QAAQ,CAAC,oCAAoC,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjD,QAAQ,CAAC,0CAA0C,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE;KACxC,QAAQ,CAAC,2CAA2C,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAA0B,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9D,CAAC;KACC,QAAQ,CAAC,wDAAwD,CAAC,CAAA;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACjC,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC5C,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,oCAAoC,CAAC;CAClE,CAAC,CAAA;AAYF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;IAChD,KAAK,EAAE,CAAC;YACN,MAAM,EAAE,YAAY,CAAC,WAAW,IAAI,WAAW;YAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,IAAI,gBAAgB,CAAC;YACpE,WAAW,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC;YACrE,OAAO,EAAE,iBAAiB,CAAC,WAAW,IAAI,qBAAqB;YAC/D,QAAQ,EAAE,EAAE;SACb,CAAC;CACH,CAAC,CAAA"}
1
+ {"version":3,"file":"prompt-schema.js","sourceRoot":"","sources":["../../src/prompt-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,QAAQ,CAAC,4CAA4C,CAAC,CAAA;AAEzD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjD,QAAQ,CAAC,oCAAoC,CAAC,CAAA;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;KACjD,QAAQ,CAAC,0CAA0C,CAAC,CAAA;AAEvD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,EAAE;KACxC,QAAQ,CAAC,2CAA2C,CAAC,CAAA;AAExD,MAAM,CAAC,MAAM,gBAAgB,GAA0B,CAAC,CAAC,MAAM,CAAC;IAC9D,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IACtC,WAAW,EAAE,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;IAC1C,OAAO,EAAE,iBAAiB,CAAC,QAAQ,EAAE;IACrC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;CAC9D,CAAC;KACC,QAAQ,CAAC,wDAAwD,CAAC,CAAA;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,MAAM,CAAC;IACzC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;CACjC,CAAC,CAAA;AAYF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;IAChD,KAAK,EAAE,CAAC;YACN,MAAM,EAAE,YAAY,CAAC,WAAW,IAAI,WAAW;YAC/C,OAAO,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,IAAI,gBAAgB,CAAC;YACpE,WAAW,EAAE,CAAC,iBAAiB,CAAC,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC;YACrE,OAAO,EAAE,iBAAiB,CAAC,WAAW,IAAI,qBAAqB;YAC/D,QAAQ,EAAE,EAAE;SACb,CAAC;CACH,CAAC,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"file":"rule-schema.d.ts","sourceRoot":"","sources":["../../src/rule-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,cAAc;;;;;;;;EASoC,CAAA;AAE/D,eAAO,MAAM,YAAY,aACmC,CAAA;AAE5D,eAAO,MAAM,YAAY,aAC6B,CAAA;AAEtD,eAAO,MAAM,aAAa,aAC4C,CAAA;AAEtE,eAAO,MAAM,YAAY,aAC2B,CAAA;AAEpD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBAOuC,CAAA;AAEpE,eAAO,MAAM,UAAU,aAC0C,CAAA;AAEjE,eAAO,MAAM,YAAY;;;;;;;;;;;;;;kBACW,CAAA;AAEpC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAE9B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,kBAAkB,QAQ7B,CAAA;AAEF,eAAO,MAAM,mBAAmB,QAI9B,CAAA"}
1
+ {"version":3,"file":"rule-schema.d.ts","sourceRoot":"","sources":["../../src/rule-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,eAAO,MAAM,cAAc;;;;;;;;EAoBvB,CAAA;AAEJ,eAAO,MAAM,YAAY,aAIrB,CAAA;AAEJ,eAAO,MAAM,YAAY,aAWrB,CAAA;AAEJ,eAAO,MAAM,aAAa,aAWtB,CAAA;AAEJ,eAAO,MAAM,YAAY,aAWrB,CAAA;AAEJ,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;iBA8CzB,CAAA;AAEJ,eAAO,MAAM,UAAU,aAWnB,CAAA;AAEJ,eAAO,MAAM,YAAY;;;;;;;;;;;;;;kBACsB,CAAA;AAE/C,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;iBAE9B,CAAA;AAEF,eAAO,MAAM,oBAAoB;;iBAE/B,CAAA;AAEF,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAA;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA;AAEzD,eAAO,MAAM,kBAAkB,QAQ7B,CAAA;AAEF,eAAO,MAAM,mBAAmB,QAK9B,CAAA"}
@@ -8,15 +8,59 @@ export const StrengthSchema = z.enum([
8
8
  'indifferent',
9
9
  'omissible',
10
10
  ])
11
- .describe('Deontic modality expressing enforcement strength');
11
+ .describe('How strongly this rule should be enforced')
12
+ .meta({
13
+ examples: {
14
+ obligatory: 'must use return await when returning promises',
15
+ permissible: 'may use either grep or find as appropriate',
16
+ forbidden: 'never use type assertions anywhere',
17
+ optional: 'adding commit body is your choice',
18
+ supererogatory: 'comprehensive documentation beyond requirements',
19
+ indifferent: 'choice of variable naming style',
20
+ omissible: 'post-task explanations can be omitted',
21
+ },
22
+ });
12
23
  export const ActionSchema = z.string()
13
- .describe('Imperative verb describing the action to take');
24
+ .describe('The action verb that describes what to do')
25
+ .meta({
26
+ examples: ['use', 'avoid', 'format', 'follow', 'keep', 'combine', 'search', 'ask'],
27
+ });
14
28
  export const TargetSchema = z.string()
15
- .describe('Object or subject the action applies to');
29
+ .describe('What the action applies to - the object of the rule')
30
+ .meta({
31
+ examples: [
32
+ 'commit messages',
33
+ 'type assertions',
34
+ 'command line tools',
35
+ 'file operations',
36
+ 'code formatting',
37
+ 'user instructions',
38
+ ],
39
+ });
16
40
  export const ContextSchema = z.string()
17
- .describe('Condition, scope, or circumstance when the rule applies');
41
+ .describe('When, where, or under what conditions this rule applies')
42
+ .meta({
43
+ examples: [
44
+ 'before removing files',
45
+ 'in async functions',
46
+ 'when returning promises',
47
+ 'for new features',
48
+ 'under 50 characters',
49
+ 'if unclear',
50
+ ],
51
+ });
18
52
  export const ReasonSchema = z.string()
19
- .describe('Justification for why the rule exists');
53
+ .describe('Why this rule exists - the justification or benefit')
54
+ .meta({
55
+ examples: [
56
+ 'prevents data loss',
57
+ 'better stack traces',
58
+ 'consistent code style',
59
+ 'automated tooling',
60
+ 'accurate execution',
61
+ 'clear completion signal',
62
+ ],
63
+ });
20
64
  export const ParsedRuleSchema = z.object({
21
65
  strength: StrengthSchema,
22
66
  action: ActionSchema,
@@ -24,11 +68,60 @@ export const ParsedRuleSchema = z.object({
24
68
  context: ContextSchema.optional(),
25
69
  reason: ReasonSchema,
26
70
  })
27
- .describe('Single instruction decomposed into deontic components');
71
+ .describe('Structured breakdown of a rule for AI processing')
72
+ .meta({
73
+ examples: [{
74
+ strength: 'obligatory',
75
+ action: 'use',
76
+ target: 'return await',
77
+ context: 'when returning promises from async functions',
78
+ reason: 'better stack traces and error handling',
79
+ }, {
80
+ strength: 'forbidden',
81
+ action: 'use',
82
+ target: 'type assertions',
83
+ context: 'anywhere',
84
+ reason: 'maintains type safety',
85
+ }, {
86
+ strength: 'obligatory',
87
+ action: 'ask',
88
+ target: 'confirmation',
89
+ context: 'before removing files',
90
+ reason: 'prevents accidental data loss',
91
+ }, {
92
+ strength: 'obligatory',
93
+ action: 'follow',
94
+ target: 'user instructions',
95
+ context: 'exactly',
96
+ reason: 'accurate execution',
97
+ }, {
98
+ strength: 'permissible',
99
+ action: 'use',
100
+ target: 'type assertions',
101
+ context: 'when the type system cannot infer the correct type',
102
+ reason: 'sometimes necessary for complex generic patterns',
103
+ }, {
104
+ strength: 'obligatory',
105
+ action: 'reply',
106
+ target: 'Done',
107
+ context: 'after completing tasks',
108
+ reason: 'clear completion signal',
109
+ }],
110
+ });
28
111
  export const RuleSchema = z.string()
29
- .describe('Human-readable rule derived from parsed components');
112
+ .describe('The rule expressed in natural human language')
113
+ .meta({
114
+ examples: [
115
+ 'Use return await when returning promises from async functions for better stack traces and error handling',
116
+ 'Do not use type assertions anywhere to maintain type safety',
117
+ 'Ask for confirmation before removing files to prevent accidental data loss',
118
+ 'Follow user instructions exactly for accurate execution',
119
+ 'May use type assertions when the type system cannot infer the correct type',
120
+ 'Reply "Done" after completing tasks for clear completion signal',
121
+ ],
122
+ });
30
123
  export const ParsedSchema = z.array(ParsedRuleSchema)
31
- .describe('Array of parsed rules');
124
+ .describe('Array of structured parsed rules');
32
125
  export const ParseResponseSchema = z.object({
33
126
  rules: ParsedSchema,
34
127
  });
@@ -46,7 +139,8 @@ export const parseSchemaExample = JSON.stringify({
46
139
  });
47
140
  export const formatSchemaExample = JSON.stringify({
48
141
  rules: [
49
- 'Rule: verb target context\nReason: justification',
142
+ 'Rule: Verb target context.\nReason: Justification.',
143
+ 'Rule: Do not verb target context.\nReason: Justification.',
50
144
  ],
51
145
  });
52
146
  //# sourceMappingURL=rule-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rule-schema.js","sourceRoot":"","sources":["../../src/rule-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC;IACnC,YAAY;IACZ,aAAa;IACb,WAAW;IACX,UAAU;IACV,gBAAgB;IAChB,aAAa;IACb,WAAW;CACZ,CAAC;KACC,QAAQ,CAAC,kDAAkD,CAAC,CAAA;AAE/D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,QAAQ,CAAC,+CAA+C,CAAC,CAAA;AAE5D,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,QAAQ,CAAC,yCAAyC,CAAC,CAAA;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,EAAE;KACpC,QAAQ,CAAC,yDAAyD,CAAC,CAAA;AAEtE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,EAAE;KACnC,QAAQ,CAAC,uCAAuC,CAAC,CAAA;AAEpD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACvC,QAAQ,EAAE,cAAc;IACxB,MAAM,EAAE,YAAY;IACpB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,aAAa,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,YAAY;CACrB,CAAC;KACC,QAAQ,CAAC,uDAAuD,CAAC,CAAA;AAEpE,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE;KACjC,QAAQ,CAAC,oDAAoD,CAAC,CAAA;AAEjE,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;KAClD,QAAQ,CAAC,uBAAuB,CAAC,CAAA;AAEpC,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1C,KAAK,EAAE,YAAY;CACpB,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC;CAC3B,CAAC,CAAA;AAKF,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC;IAC/C,KAAK,EAAE,CAAC;YACN,QAAQ,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAC1C,MAAM,EAAE,YAAY,CAAC,WAAW,IAAI,MAAM;YAC1C,MAAM,EAAE,YAAY,CAAC,WAAW,IAAI,QAAQ;YAC5C,OAAO,EAAE,aAAa,CAAC,WAAW,IAAI,oBAAoB;YAC1D,MAAM,EAAE,YAAY,CAAC,WAAW,IAAI,eAAe;SACpD,CAAC;CACH,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,CAAC;IAChD,KAAK,EAAE;QACL,kDAAkD;KACnD;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"rule-schema.js","sourceRoot":"","sources":["../../src/rule-schema.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- export declare const PARSE_RULES_DESC: string;
2
- export declare const MODE_DESC: string;
3
- export declare const FORMAT_RULES_DESC: string;
4
- export declare const PARSE_PROMPT_DESC: string;
1
+ export declare const DEONTIC_STRENGTHS: string;
2
+ export declare const NEGATION_SIGNALS: string;
3
+ export declare const MODE_FORMATS: string;
4
+ export declare const PARSE_RULES_PARAM: string;
5
+ export declare const FORMAT_RULES_PARAM: string;
6
+ export declare const MODE_PARAM = "verbose | balanced | concise. Default: balanced.";
7
+ export declare const PARSE_PROMPT_PARAM: string;
5
8
  //# sourceMappingURL=descriptions.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptions.d.ts","sourceRoot":"","sources":["../../../src/tools/descriptions.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,QASjB,CAAA;AAEZ,eAAO,MAAM,SAAS,QAKV,CAAA;AAEZ,eAAO,MAAM,iBAAiB,QAUlB,CAAA;AAEZ,eAAO,MAAM,iBAAiB,QASlB,CAAA"}
1
+ {"version":3,"file":"descriptions.d.ts","sourceRoot":"","sources":["../../../src/tools/descriptions.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,QAQlB,CAAA;AAKZ,eAAO,MAAM,gBAAgB,QAIjB,CAAA;AAKZ,eAAO,MAAM,YAAY,QAWb,CAAA;AAIZ,eAAO,MAAM,iBAAiB,QAIlB,CAAA;AAEZ,eAAO,MAAM,kBAAkB,QAGnB,CAAA;AAEZ,eAAO,MAAM,UAAU,qDAAqD,CAAA;AAE5E,eAAO,MAAM,kBAAkB,QAGnB,CAAA"}
@@ -1,40 +1,50 @@
1
1
  import { promptSchemaExample } from "../prompt-schema.js";
2
2
  import { formatSchemaExample, parseSchemaExample } from "../rule-schema.js";
3
- export const PARSE_RULES_DESC = [
4
- 'Object with a "rules" array. Each rule: {',
5
- ' strength: obligatory|permissible|forbidden|optional|supererogatory|indifferent|omissible,',
6
- ' action: imperative verb describing what to do,',
7
- ' target: what the action applies to,',
8
- ' context: (optional) when/where the rule applies,',
9
- ' reason: why the rule exists',
10
- '}',
11
- 'Example: ' + parseSchemaExample,
3
+ // Deontic logic: the 7 modal strengths and their natural language expression.
4
+ // Defined once, composed into tool descriptions that need them.
5
+ export const DEONTIC_STRENGTHS = [
6
+ 'obligatory -> positive imperative: "use consistent whitespace"',
7
+ 'forbidden -> negate with "do not": "do not use non-null assertions"',
8
+ 'permissible -> prefix with "may": "may use type assertions when necessary"',
9
+ 'optional -> prefix with "may choose to": "may choose to add commit body"',
10
+ 'supererogatory -> prefix with "ideally": "ideally provide comprehensive documentation"',
11
+ 'indifferent -> prefix with "either way is fine": "either way is fine for naming style"',
12
+ 'omissible -> prefix with "may omit": "may omit post-task explanations"',
13
+ ].join('\n');
14
+ // Speech act detection: how to map natural language directive signals to deontic strength.
15
+ // Used by parse-rules to classify input.
16
+ export const NEGATION_SIGNALS = [
17
+ '"avoid", "never", "do not", "don\'t", "no" -> forbidden',
18
+ '"always", "must", "should", "ensure" -> obligatory',
19
+ '"may", "can", "optionally" -> permissible',
12
20
  ].join('\n');
13
- export const MODE_DESC = [
14
- 'Formatting mode: verbose, balanced, or concise.',
15
- ' verbose: Full Rule/Reason pairs for every rule.',
16
- ' balanced (default): The LLM decides which rules need reasons.',
17
- ' concise: Bullet list of directives only, no reasons.',
21
+ // Mode format templates: what each formatting mode produces.
22
+ // Used by format-rules to know the output shape per mode.
23
+ export const MODE_FORMATS = [
24
+ 'verbose: every rule gets Rule + Reason lines.',
25
+ ' Rule: <directive>',
26
+ ' Reason: <justification>',
27
+ '',
28
+ 'balanced (default): include Reason only when non-obvious.',
29
+ ' Rule: <directive>',
30
+ ' Reason: <justification if needed>',
31
+ '',
32
+ 'concise: bullet list, no reasons.',
33
+ ' - <directive>',
34
+ ].join('\n');
35
+ // Parameter shape descriptions. These describe the JSON value, not the LLM's role.
36
+ export const PARSE_RULES_PARAM = [
37
+ 'JSON with "rules" array of parsed rule objects.',
38
+ 'Each rule: { strength, action, target, context?, reason }',
39
+ 'Example: ' + parseSchemaExample,
18
40
  ].join('\n');
19
- export const FORMAT_RULES_DESC = [
20
- 'Array of human-readable rule strings.',
21
- 'Each string is a formatted rule derived from parsed components.',
22
- 'Express the deontic strength naturally in the rule text:',
23
- ' obligatory -> "use consistent whitespace" (positive imperative)',
24
- ' forbidden -> "do not use non-null assertions" (negated imperative)',
25
- ' permissible -> "may use type assertions when necessary"',
26
- 'For verbose and balanced modes, include "Rule: " prefix and "\\nReason: " suffix.',
27
- 'For concise mode, use "- " prefix with no reason.',
41
+ export const FORMAT_RULES_PARAM = [
42
+ 'JSON with "rules" array of formatted rule strings.',
28
43
  'Example: ' + formatSchemaExample,
29
44
  ].join('\n');
30
- export const PARSE_PROMPT_DESC = [
31
- 'Parsed prompt with array of tasks. Each task: {',
32
- ' intent: clear directive of what to do,',
33
- ' targets: files/systems involved (default []),',
34
- ' constraints: conditions/requirements (default []),',
35
- ' context: (optional) background rationale,',
36
- ' subtasks: nested tasks (default [])',
37
- '}',
45
+ export const MODE_PARAM = 'verbose | balanced | concise. Default: balanced.';
46
+ export const PARSE_PROMPT_PARAM = [
47
+ 'JSON with "tasks" array. Each task: { intent, targets, constraints, context?, subtasks }',
38
48
  'Example: ' + promptSchemaExample,
39
49
  ].join('\n');
40
50
  //# sourceMappingURL=descriptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../../src/tools/descriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3E,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,2CAA2C;IAC3C,6FAA6F;IAC7F,kDAAkD;IAClD,uCAAuC;IACvC,oDAAoD;IACpD,+BAA+B;IAC/B,GAAG;IACH,WAAW,GAAG,kBAAkB;CACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,iDAAiD;IACjD,mDAAmD;IACnD,iEAAiE;IACjE,wDAAwD;CACzD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,uCAAuC;IACvC,iEAAiE;IACjE,0DAA0D;IAC1D,mEAAmE;IACnE,sEAAsE;IACtE,2DAA2D;IAC3D,mFAAmF;IACnF,mDAAmD;IACnD,WAAW,GAAG,mBAAmB;CAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iDAAiD;IACjD,0CAA0C;IAC1C,iDAAiD;IACjD,sDAAsD;IACtD,6CAA6C;IAC7C,uCAAuC;IACvC,GAAG;IACH,WAAW,GAAG,mBAAmB;CAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
1
+ {"version":3,"file":"descriptions.js","sourceRoot":"","sources":["../../../src/tools/descriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAE3E,8EAA8E;AAC9E,gEAAgE;AAEhE,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,gEAAgE;IAChE,qEAAqE;IACrE,4EAA4E;IAC5E,0EAA0E;IAC1E,wFAAwF;IACxF,wFAAwF;IACxF,wEAAwE;CACzE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,2FAA2F;AAC3F,yCAAyC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,yDAAyD;IACzD,oDAAoD;IACpD,2CAA2C;CAC5C,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,6DAA6D;AAC7D,0DAA0D;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,+CAA+C;IAC/C,qBAAqB;IACrB,2BAA2B;IAC3B,EAAE;IACF,2DAA2D;IAC3D,qBAAqB;IACrB,qCAAqC;IACrC,EAAE;IACF,mCAAmC;IACnC,iBAAiB;CAClB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,mFAAmF;AAEnF,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,iDAAiD;IACjD,2DAA2D;IAC3D,WAAW,GAAG,kBAAkB;CACjC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,oDAAoD;IACpD,WAAW,GAAG,mBAAmB;CAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAEZ,MAAM,CAAC,MAAM,UAAU,GAAG,kDAAkD,CAAA;AAE5E,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,0FAA0F;IAC1F,WAAW,GAAG,mBAAmB;CAClC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import type { PluginInput } from '@opencode-ai/plugin';
1
2
  type ParsePromptToolOptions = {
2
3
  description: string;
3
4
  };
@@ -11,6 +12,7 @@ export declare const createParsePromptTool: (options: ParsePromptToolOptions) =>
11
12
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
12
13
  };
13
14
  type FormatPromptToolOptions = {
15
+ client: PluginInput['client'];
14
16
  description: string;
15
17
  };
16
18
  export declare const createFormatPromptTool: (options: FormatPromptToolOptions) => {
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/tools/prompts.ts"],"names":[],"mappings":"AAQA,KAAK,sBAAsB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,sBAAsB;;;;;;;;CAepE,CAAA;AAID,KAAK,uBAAuB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,uBAAuB;;;;;;;;CAqBtE,CAAA"}
1
+ {"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAUtD,KAAK,sBAAsB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,sBAAsB;;;;;;;;CAepE,CAAA;AAID,KAAK,uBAAuB,GAAG;IAC7B,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,SAAS,uBAAuB;;;;;;;;CA0BtE,CAAA"}
@@ -1,13 +1,14 @@
1
1
  import { tool } from '@opencode-ai/plugin';
2
2
  import { formatPrompt } from "../format-prompt.js";
3
+ import { sendResult } from "../opencode/notify.js";
3
4
  import { ParsedPromptSchema } from "../prompt-schema.js";
4
5
  import { formatValidationError, validateJson } from "../validate.js";
5
- import { PARSE_PROMPT_DESC } from "./descriptions.js";
6
+ import { PARSE_PROMPT_PARAM } from "./descriptions.js";
6
7
  export const createParsePromptTool = (options) => {
7
8
  return tool({
8
9
  description: options.description,
9
10
  args: {
10
- tasks: tool.schema.string().describe(PARSE_PROMPT_DESC),
11
+ tasks: tool.schema.string().describe(PARSE_PROMPT_PARAM),
11
12
  },
12
13
  async execute(args) {
13
14
  const validated = validateJson(args.tasks, ParsedPromptSchema);
@@ -22,9 +23,9 @@ export const createFormatPromptTool = (options) => {
22
23
  return tool({
23
24
  description: options.description,
24
25
  args: {
25
- tasks: tool.schema.string().describe(PARSE_PROMPT_DESC),
26
+ tasks: tool.schema.string().describe(PARSE_PROMPT_PARAM),
26
27
  },
27
- async execute(args) {
28
+ async execute(args, context) {
28
29
  const validated = validateJson(args.tasks, ParsedPromptSchema);
29
30
  if (validated.error !== null) {
30
31
  return formatValidationError(validated);
@@ -33,7 +34,12 @@ export const createFormatPromptTool = (options) => {
33
34
  if (formatted.length === 0) {
34
35
  return 'No tasks found in the parsed input';
35
36
  }
36
- return formatted;
37
+ await sendResult({
38
+ client: options.client,
39
+ sessionID: context.sessionID,
40
+ text: formatted,
41
+ });
42
+ return 'Formatted prompt displayed in chat.';
37
43
  },
38
44
  });
39
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/tools/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAQrD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACvE,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SACxD;QACD,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;YAC9D,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;YACzC,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAChD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AAQD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAgC,EAAE,EAAE;IACzE,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,iBAAiB,CAAC;SACxD;QACD,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;YAC9D,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;YACzC,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAE9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,oCAAoC,CAAA;YAC7C,CAAC;YAED,OAAO,SAAS,CAAA;QAClB,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
1
+ {"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../../src/tools/prompts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAQtD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,OAA+B,EAAE,EAAE;IACvE,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACzD;QACD,KAAK,CAAC,OAAO,CAAC,IAAI;YAChB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;YAC9D,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;YACzC,CAAC;YAED,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QAChD,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AASD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAgC,EAAE,EAAE;IACzE,OAAO,IAAI,CAAC;QACV,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,IAAI,EAAE;YACJ,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,kBAAkB,CAAC;SACzD;QACD,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO;YACzB,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAA;YAC9D,IAAI,SAAS,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC7B,OAAO,qBAAqB,CAAC,SAAS,CAAC,CAAA;YACzC,CAAC;YAED,MAAM,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;YAC9C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAO,oCAAoC,CAAA;YAC7C,CAAC;YAED,MAAM,UAAU,CAAC;gBACf,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,IAAI,EAAE,SAAS;aAChB,CAAC,CAAA;YAEF,OAAO,qCAAqC,CAAA;QAC9C,CAAC;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,3 +1,4 @@
1
+ import type { PluginInput } from '@opencode-ai/plugin';
1
2
  type DiscoverToolOptions = {
2
3
  description: string;
3
4
  directory: string;
@@ -38,12 +39,13 @@ export declare const createFormatRulesTool: (options: FormatRulesToolOptions) =>
38
39
  mode?: string | undefined;
39
40
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
40
41
  };
41
- type RewriteToolOptions = {
42
+ type WriteToolOptions = {
43
+ client: PluginInput['client'];
42
44
  description: string;
43
45
  directory: string;
44
46
  discovered: Set<string>;
45
47
  };
46
- export declare const createRewriteTool: (options: RewriteToolOptions) => {
48
+ export declare const createRewriteTool: (options: WriteToolOptions) => {
47
49
  description: string;
48
50
  args: {
49
51
  rules: import("zod").ZodString;
@@ -56,12 +58,7 @@ export declare const createRewriteTool: (options: RewriteToolOptions) => {
56
58
  mode?: string | undefined;
57
59
  }, context: import("@opencode-ai/plugin").ToolContext): Promise<string>;
58
60
  };
59
- type AddToolOptions = {
60
- description: string;
61
- directory: string;
62
- discovered: Set<string>;
63
- };
64
- export declare const createAddTool: (options: AddToolOptions) => {
61
+ export declare const createAddTool: (options: WriteToolOptions) => {
65
62
  description: string;
66
63
  args: {
67
64
  rules: import("zod").ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/tools/rules.ts"],"names":[],"mappings":"AAWA,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,mBAAmB;;;;;;;;CAsC9D,CAAA;AAID,KAAK,qBAAqB,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,qBAAqB;;;;;;;;CAelE,CAAA;AAID,KAAK,sBAAsB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,sBAAsB;;;;;;;;;;CAgBpE,CAAA;AAID,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,kBAAkB;;;;;;;;;;;;CA0C5D,CAAA;AAID,KAAK,cAAc,GAAG;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,aAAa,GAAI,SAAS,cAAc;;;;;;;;;;;;CA+CpD,CAAA"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/tools/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAatD,KAAK,mBAAmB,GAAG;IACzB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,mBAAmB;;;;;;;;CAsC9D,CAAA;AAID,KAAK,qBAAqB,GAAG;IAC3B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,SAAS,qBAAqB;;;;;;;;CAelE,CAAA;AAID,KAAK,sBAAsB,GAAG;IAC5B,WAAW,EAAE,MAAM,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,qBAAqB,GAAI,SAAS,sBAAsB;;;;;;;;;;CAgBpE,CAAA;AAID,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAA;IAC7B,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;CACxB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,SAAS,gBAAgB;;;;;;;;;;;;CAmD1D,CAAA;AAID,eAAO,MAAM,aAAa,GAAI,SAAS,gBAAgB;;;;;;;;;;;;CAwDtD,CAAA"}
@@ -1,11 +1,12 @@
1
1
  import { tool } from '@opencode-ai/plugin';
2
2
  import { appendRules } from "../append.js";
3
3
  import { buildTable, toTableRow } from "../compare.js";
4
+ import { sendResult } from "../opencode/notify.js";
4
5
  import { resolveFiles } from "../resolve.js";
5
6
  import { processFile } from "../rewrite.js";
6
7
  import { FormatResponseSchema, ParseResponseSchema } from "../rule-schema.js";
7
8
  import { formatValidationError, validateJson } from "../validate.js";
8
- import { FORMAT_RULES_DESC, MODE_DESC, PARSE_RULES_DESC } from "./descriptions.js";
9
+ import { FORMAT_RULES_PARAM, MODE_PARAM, PARSE_RULES_PARAM } from "./descriptions.js";
9
10
  export const createDiscoverTool = (options) => {
10
11
  return tool({
11
12
  description: options.description,
@@ -43,7 +44,7 @@ export const createParseRulesTool = (options) => {
43
44
  return tool({
44
45
  description: options.description,
45
46
  args: {
46
- rules: tool.schema.string().describe(PARSE_RULES_DESC),
47
+ rules: tool.schema.string().describe(PARSE_RULES_PARAM),
47
48
  },
48
49
  async execute(args) {
49
50
  const validated = validateJson(args.rules, ParseResponseSchema);
@@ -58,8 +59,8 @@ export const createFormatRulesTool = (options) => {
58
59
  return tool({
59
60
  description: options.description,
60
61
  args: {
61
- rules: tool.schema.string().describe(FORMAT_RULES_DESC),
62
- mode: tool.schema.string().optional().describe(MODE_DESC),
62
+ rules: tool.schema.string().describe(FORMAT_RULES_PARAM),
63
+ mode: tool.schema.string().optional().describe(MODE_PARAM),
63
64
  },
64
65
  async execute(args) {
65
66
  const validated = validateJson(args.rules, FormatResponseSchema);
@@ -74,10 +75,9 @@ export const createRewriteTool = (options) => {
74
75
  return tool({
75
76
  description: options.description,
76
77
  args: {
77
- rules: tool.schema.string().describe(FORMAT_RULES_DESC),
78
- files: tool.schema.string().optional()
79
- .describe('Comma-separated file paths to process instead of discovering from opencode.json'),
80
- mode: tool.schema.string().optional().describe(MODE_DESC),
78
+ rules: tool.schema.string().describe(FORMAT_RULES_PARAM),
79
+ files: tool.schema.string().optional().describe('Comma-separated file paths to process instead of discovering from opencode.json'),
80
+ mode: tool.schema.string().optional().describe(MODE_PARAM),
81
81
  },
82
82
  async execute(args, context) {
83
83
  if (options.discovered.size === 0) {
@@ -101,20 +101,26 @@ export const createRewriteTool = (options) => {
101
101
  rules: validated.data.rules,
102
102
  }));
103
103
  }
104
- return buildTable(fileResults.map(toTableRow));
104
+ const table = buildTable(fileResults.map(toTableRow));
105
+ await sendResult({
106
+ client: options.client,
107
+ sessionID: context.sessionID,
108
+ text: table,
109
+ });
110
+ return 'Rewrote ' + fileResults.length + ' file(s). Results displayed in chat.';
105
111
  },
106
112
  });
107
113
  };
114
+ // add-rules
108
115
  export const createAddTool = (options) => {
109
116
  return tool({
110
117
  description: options.description,
111
118
  args: {
112
- rules: tool.schema.string().describe(FORMAT_RULES_DESC),
113
- file: tool.schema.string().optional()
114
- .describe('File path to append to. If omitted, uses the first discovered instruction file.'),
115
- mode: tool.schema.string().optional().describe(MODE_DESC),
119
+ rules: tool.schema.string().describe(FORMAT_RULES_PARAM),
120
+ file: tool.schema.string().optional().describe('File path to append to. If omitted, uses the first discovered instruction file.'),
121
+ mode: tool.schema.string().optional().describe(MODE_PARAM),
116
122
  },
117
- async execute(args) {
123
+ async execute(args, context) {
118
124
  if (options.discovered.size === 0) {
119
125
  return 'Call discover-rules first to read the instruction files before adding.';
120
126
  }
@@ -141,7 +147,13 @@ export const createAddTool = (options) => {
141
147
  if (result.status !== 'success') {
142
148
  return result.status + ': ' + result.error;
143
149
  }
144
- return 'Added ' + result.rulesCount + ' rule(s) to ' + result.path;
150
+ const message = 'Added ' + result.rulesCount + ' rule(s) to ' + result.path;
151
+ await sendResult({
152
+ client: options.client,
153
+ sessionID: context.sessionID,
154
+ text: message,
155
+ });
156
+ return 'Added ' + result.rulesCount + ' rule(s). Results displayed in chat.';
145
157
  },
146
158
  });
147
159
  };
@@ -1 +1 @@
1
- {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/tools/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/tools/rules.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { safe } from './safe';
1
+ import { safe } from "./safe.js";
2
2
  export const validateJson = (json, schema) => {
3
3
  const parseResult = safe(() => JSON.parse(json));
4
4
  if (parseResult.error) {
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/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;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,6BAA6B,GAAG,MAAM,GAAG,mCAAmC,CAAA;AACrF,CAAC,CAAA"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/validate.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAoBhC,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,6BAA6B,GAAG,MAAM,GAAG,mCAAmC,CAAA;AACrF,CAAC,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-sat",
3
- "version": "0.0.16-next.1",
3
+ "version": "0.0.16-next.2",
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",