Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
19 commits
Select commit Hold shift + click to select a range
3e56c26
Initial plan
Copilot Jul 4, 2026
3442d68
Add OpenAI Responses API (JSON Schema mode) support
Copilot Jul 4, 2026
bb3d97e
Fix test formatting for consistency with existing test style
Copilot Jul 4, 2026
46e07dd
feat(ai): add support for OpenAI responses API
nmaguiar Jul 6, 2026
b58f160
Merge pull request #1865 from OpenAF/copilot/add-openai-responses-api…
nmaguiar Jul 6, 2026
4781687
chore(deps): upgrade postgresql from 42.7.12 to 42.7.13
nmaguiar Jul 7, 2026
27d9527
chore(deps): upgrade postgresql from 42.7.12 to 42.7.13
nmaguiar Jul 7, 2026
9157aa4
feat(template): add support for markdown display math blocks
nmaguiar Jul 8, 2026
b11c306
chore(deps): upgrade jna-platform to 5.19.1 and snmp4j-agent to 3.9.1
nmaguiar Jul 8, 2026
c446c29
fix(core): improve thread sync, AI tool calls, and formatting
nmaguiar Jul 11, 2026
2ed0a90
feat(format): add json-io/java-util for native TOON support
nmaguiar Jul 22, 2026
b50d8f8
feat(js): enable toTOON and fromTOON by default in openaf.js
nmaguiar Jul 22, 2026
a9c3af2
feat(core): add native Java toTOON/fromTOON functions and bump versio…
nmaguiar Jul 22, 2026
db3d083
chore(deps): upgrade multiple dependencies
nmaguiar Jul 22, 2026
bb9a3b8
feat(complete): add exact match support and improve completion scripts
nmaguiar Jul 26, 2026
9e21921
Test results badge
github-actions[bot] Jul 26, 2026
c536b50
Test results badge
github-actions[bot] Jul 26, 2026
dbfeab5
Test results badge
github-actions[bot] Jul 26, 2026
2c54096
Merge branch 'master' into t8
nmaguiar Jul 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified compiler.jar
Binary file not shown.
81 changes: 67 additions & 14 deletions complete/completion.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,8 @@ jobs:
in:
file: isString
exec : |
ow.template.addHelper("$p", p => p)
ow.template.addHelper("$sfx", n => "${arg#" + n + "}")
ow.template.addHelper("$esc", s => isUnDef(s) ? "" : String(s).replace(/'/g, "'\\''"))
from :
- (pass ):
aYAMLFile: "{{file}}"
Expand All @@ -36,58 +37,110 @@ jobs:
#!/bin/sh

# Flags
_G_EXACT_CHOSEN=0
{{#each complete}}
F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=1
{{#if exact}}
F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_SEEN=0
{{#each opts}}
F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=1
{{/each}}
{{else}}
{{#each opts}}
F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0
{{#each opts}}
F_{{{$path ../../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=1
{{/each}}
{{/each}}
{{/if}}
{{/each}}

# Iterate over the arguments
FFOUND=0
if [ $# -gt 0 ]; then
FFOUND=0
_n=$#
_i=0
for arg in "$@"; do
if [ "$arg" = "${!#}" ]; then FFOUND=1; break; fi
_i=$((_i+1))
if [ $_i -eq $_n ]; then FFOUND=1; break; fi
{{#each complete}}
{{#if opts.length}}
# {{{name}}} options
{{#if exact}}
# {{{name}}} subcommand
if [ "$arg" = "{{{name}}}" ]; then FFOUND=1; F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_SEEN=1; _G_EXACT_CHOSEN=1; fi
{{#each opts}}
if [ $F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_SEEN -eq 1 ] && [ "$arg" = "{{{name}}}" ]; then FFOUND=1; F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; fi
{{/each}}
{{else}}
# {{{name}}} single option
if [ "$arg" = "{{{name}}}" ]; then FFOUND=1; F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; fi
{{/if}}
# {{{name}}} options
{{#each opts}}
if [ "$arg" = "{{{name}}}" ]; then FFOUND=1; F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=1; F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; fi
{{#each opts}}
if [ "${arg#{{{name}}}{{$p '}'}}" != "$arg" ]; then FFOUND=1; F_{{{$path ../../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; fi
if [ "{{{$sfx name}}}" != "$arg" ]; then FFOUND=1; F_{{{$path ../../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; fi
{{/each}}
{{/each}}
{{/if}}
{{else}}
# {{{name}}} single option
if [ "$arg" = "{{{name}}}" ]; then FFOUND=1; F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}=0; fi
{{/if}}
{{/each}}
done
fi

{{#each complete}}
{{#if exact}}
# Print completion for {{{name}}}
if [ $F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}} -eq 1 ]; then
echo "{{{name}}} {{{desc}}}"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}} -eq 1 ]; then
{{#if desc}}
printf '%s\t%s\n' '{{{$esc name}}}' '{{{$esc desc}}}'
{{else}}
printf '%s\n' '{{{$esc name}}}'
{{/if}}
fi
if [ $F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_SEEN -eq 1 ]; then
{{#each opts}}
echo "{{{name}}} {{{desc}}}"
if [ $F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}} -eq 1 ]; then
{{#if desc}}
printf '%s\t%s\n' '{{{$esc name}}}' '{{{$esc desc}}}'
{{else}}
printf '%s\n' '{{{$esc name}}}'
{{/if}}
fi
{{/each}}
fi
{{else}}
# Print completion for {{{name}}}
if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}} -eq 1 ]; then
{{#if desc}}
printf '%s\t%s\n' '{{{$esc name}}}' '{{{$esc desc}}}'
{{else}}
printf '%s\n' '{{{$esc name}}}'
{{/if}}
{{#each opts}}
{{#if desc}}
printf '%s\t%s\n' '{{{$esc name}}}' '{{{$esc desc}}}'
{{else}}
printf '%s\n' '{{{$esc name}}}'
{{/if}}
{{/each}}
fi
{{#each opts}}
{{#if opts.length}}
if [ $F_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}} -eq 1 ]; then
{{#each opts}}
if [ $F_{{{$path ../../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path ../name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}}_{{{$path name 'replace(@,\'[^a-zA-Z0-9]\',\'g\',\'_\')'}}} -eq 1 ]; then
echo "{{{name}}} {{{desc}}}"
{{#if desc}}
printf '%s\t%s\n' '{{{$esc name}}}' '{{{$esc desc}}}'
{{else}}
printf '%s\n' '{{{$esc name}}}'
{{/if}}
fi
{{/each}}
fi
{{/if}}
{{/each}}
{{/if}}
{{/each}}

# end
Expand All @@ -96,7 +149,7 @@ jobs:
else
echo :2
fi

((key )): args
((dpath )): data
((out )): out
Expand Down
98 changes: 42 additions & 56 deletions complete/completion_oaf.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
#!/bin/sh

# Flags
_G_EXACT_CHOSEN=0
F__e=1
F__c=1
F__p=1
Expand All @@ -21,10 +22,13 @@ F__v=1
F__helpscript=1

# Iterate over the arguments
FFOUND=0
if [ $# -gt 0 ]; then
FFOUND=0
_n=$#
_i=0
for arg in "$@"; do
if [ "$arg" = "" ]; then FFOUND=1; break; fi
_i=$((_i+1))
if [ $_i -eq $_n ]; then FFOUND=1; break; fi
# -e single option
if [ "$arg" = "-e" ]; then FFOUND=1; F__e=0; fi
# -c single option
Expand Down Expand Up @@ -65,94 +69,76 @@ if [ $# -gt 0 ]; then
fi

# Print completion for -e
if [ $F__e -eq 1 ]; then
echo "-e provide input directly instead of using stdin"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__e -eq 1 ]; then
printf '%s\t%s\n' '-e' 'provide input directly instead of using stdin'
fi
# Print completion for -c
if [ $F__c -eq 1 ]; then
echo "-c provide javascript code directly"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__c -eq 1 ]; then
printf '%s\t%s\n' '-c' 'provide javascript code directly'
fi
# Print completion for -p
if [ $F__p -eq 1 ]; then
echo "-p received streaming input -OS pipe-"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__p -eq 1 ]; then
printf '%s\t%s\n' '-p' 'received streaming input -OS pipe-'
fi
# Print completion for -o
if [ $F__o -eq 1 ]; then
echo "-o output mode -__pmOut displayed-"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__o -eq 1 ]; then
printf '%s\t%s\n' '-o' 'output mode -__pmOut displayed-'
fi
# Print completion for -f
if [ $F__f -eq 1 ]; then
echo "-f provide a script file directly"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__f -eq 1 ]; then
printf '%s\t%s\n' '-f' 'provide a script file directly'
fi
# Print completion for --install
if [ $F___install -eq 1 ]; then
echo "--install generates scripts to use openaf on the current directory"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___install -eq 1 ]; then
printf '%s\t%s\n' '--install' 'generates scripts to use openaf on the current directory'
fi
# Print completion for --check
if [ $F___check -eq 1 ]; then
echo "--check checks if this is the current version"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___check -eq 1 ]; then
printf '%s\t%s\n' '--check' 'checks if this is the current version'
fi
# Print completion for --update
if [ $F___update -eq 1 ]; then
echo "--update updates to the most current version"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___update -eq 1 ]; then
printf '%s\t%s\n' '--update' 'updates to the most current version'
fi
# Print completion for --console
if [ $F___console -eq 1 ]; then
echo "--console interactive OpenAF console"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___console -eq 1 ]; then
printf '%s\t%s\n' '--console' 'interactive OpenAF console'
fi
# Print completion for --repack
if [ $F___repack -eq 1 ]; then
echo "--repack repack OpenAF.jar for faster startup times"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___repack -eq 1 ]; then
printf '%s\t%s\n' '--repack' 'repack OpenAF.jar for faster startup times'
fi
# Print completion for --daemon
if [ $F___daemon -eq 1 ]; then
echo "--daemon executes a script/opack as a daemon"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___daemon -eq 1 ]; then
printf '%s\t%s\n' '--daemon' 'executes a script/opack as a daemon'
fi
# Print completion for --script
if [ $F___script -eq 1 ]; then
echo "--script executes a script/opack"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___script -eq 1 ]; then
printf '%s\t%s\n' '--script' 'executes a script/opack'
fi
# Print completion for --force
if [ $F___force -eq 1 ]; then
echo "--force forces an update"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___force -eq 1 ]; then
printf '%s\t%s\n' '--force' 'forces an update'
fi
# Print completion for --sb
if [ $F___sb -eq 1 ]; then
echo "--sb generates or pre-appends openaf/ojob shebang to a js script or ojob yaml/json"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___sb -eq 1 ]; then
printf '%s\t%s\n' '--sb' 'generates or pre-appends openaf/ojob shebang to a js script or ojob yaml/json'
fi
# Print completion for --py
if [ $F___py -eq 1 ]; then
echo "--py runs a python script with openaf extensions"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F___py -eq 1 ]; then
printf '%s\t%s\n' '--py' 'runs a python script with openaf extensions'
fi
# Print completion for -h
if [ $F__h -eq 1 ]; then
echo "-h show this help information"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__h -eq 1 ]; then
printf '%s\t%s\n' '-h' 'show this help information'
fi
# Print completion for -v
if [ $F__v -eq 1 ]; then
echo "-v show the version"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__v -eq 1 ]; then
printf '%s\t%s\n' '-v' 'show the version'
fi
# Print completion for -helpscript
if [ $F__helpscript -eq 1 ]; then
echo "-helpscript show help on a search term on scripting"

if [ $_G_EXACT_CHOSEN -eq 0 ] && [ $F__helpscript -eq 1 ]; then
printf '%s\t%s\n' '-helpscript' 'show help on a search term on scripting'
fi

# end
Expand Down
Loading
Loading