ApiLogicServer 15.0.41__py3-none-any.whl → 15.0.46__py3-none-any.whl
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.
- api_logic_server_cli/api_logic_server.py +113 -4
- api_logic_server_cli/api_logic_server_info.yaml +3 -3
- api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc +0 -0
- api_logic_server_cli/create_from_model/api_logic_server_utils.py +5 -2
- api_logic_server_cli/manager.py +21 -18
- api_logic_server_cli/prototypes/base/{.vscode → .github}/.copilot-instructions.md +60 -4
- api_logic_server_cli/prototypes/base/.vscode/settings.json +19 -0
- api_logic_server_cli/prototypes/base/readme.md +7 -0
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +20 -13
- api_logic_server_cli/prototypes/manager/README.md +3 -1
- api_logic_server_cli/prototypes/manager/samples/readme_samples.md +54 -1
- api_logic_server_cli/prototypes/manager/webgenai/README.md +7 -2
- {apilogicserver-15.0.41.dist-info → apilogicserver-15.0.46.dist-info}/METADATA +1 -1
- {apilogicserver-15.0.41.dist-info → apilogicserver-15.0.46.dist-info}/RECORD +19 -21
- api_logic_server_cli/prototypes/base/.copilot-instructions.md +0 -10
- api_logic_server_cli/prototypes/manager/.copilot-instructions.md +0 -13
- /api_logic_server_cli/prototypes/manager/samples/dbs/{readme_samples.md → readme_dbs.md} +0 -0
- {apilogicserver-15.0.41.dist-info → apilogicserver-15.0.46.dist-info}/WHEEL +0 -0
- {apilogicserver-15.0.41.dist-info → apilogicserver-15.0.46.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.0.41.dist-info → apilogicserver-15.0.46.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.0.41.dist-info → apilogicserver-15.0.46.dist-info}/top_level.txt +0 -0
|
@@ -12,9 +12,10 @@ ApiLogicServer CLI: given a database url, create [and run] customizable ApiLogic
|
|
|
12
12
|
Called from api_logic_server_cli.py, by instantiating the ProjectRun object.
|
|
13
13
|
'''
|
|
14
14
|
|
|
15
|
-
__version__ = "15.00.
|
|
15
|
+
__version__ = "15.00.46" # last public release: 15.00.41 (15.00.12)
|
|
16
16
|
recent_changes = \
|
|
17
17
|
f'\n\nRecent Changes:\n' +\
|
|
18
|
+
"\t07/14/2024 - 15.00.46: venv fix, copilot vibe tweaks - creation, mcp logic, basic_demo autonums \n"\
|
|
18
19
|
"\t07/10/2024 - 15.00.41: copilot vibe support for logic, UI, MCP, bug[98] \n"\
|
|
19
20
|
"\t06/30/2024 - 15.00.33: Tech Preview: genai-logic genai-add-app --vibe, bug [96, 97] \n"\
|
|
20
21
|
"\t06/10/2024 - 15.00.12: MCP Security, win fixes for readme, graphics quotes \n"\
|
|
@@ -622,11 +623,12 @@ def final_project_fixup(msg, project) -> str:
|
|
|
622
623
|
|
|
623
624
|
# **********************************
|
|
624
625
|
# set python.defaultInterpreterPath
|
|
626
|
+
# yuck: https://apilogicserver.github.io/Docs/Architecture-venv-defaulting/
|
|
625
627
|
# **********************************
|
|
626
|
-
do_default_interpreter_path
|
|
627
|
-
if do_default_interpreter_path:
|
|
628
|
+
if do_default_interpreter_path := True: # compute startup (only) python / venv location, from creating venv (here)
|
|
628
629
|
defaultInterpreterPath_str = sys.executable # python location, unless running from blt or dev-src
|
|
629
630
|
defaultInterpreterPath = Path(defaultInterpreterPath_str)
|
|
631
|
+
venv_path_str = str(project.venv_path) # project.manager_path also there...
|
|
630
632
|
if 'ApiLogicServer-dev' in str(project.api_logic_server_dir_path): # blt & dev-src are special case
|
|
631
633
|
if os.name == "nt": # cases: blt, or dev source
|
|
632
634
|
defaultInterpreterPath = project.api_logic_server_dir_path.parent.parent.parent.parent.joinpath('venv/scripts/python.exe')
|
|
@@ -646,9 +648,116 @@ def final_project_fixup(msg, project) -> str:
|
|
|
646
648
|
create_utils.replace_string_in_file(search_for = 'ApiLogicServerPython',
|
|
647
649
|
replace_with=defaultInterpreterPath_str,
|
|
648
650
|
in_file=vscode_settings_path)
|
|
651
|
+
|
|
652
|
+
# Create venv initialization script for terminal
|
|
653
|
+
venv_init_path = project.project_directory_path.joinpath('.vscode/venv_init.sh')
|
|
654
|
+
venv_activate_script = str(Path(defaultInterpreterPath_str).parent.joinpath('activate'))
|
|
655
|
+
|
|
656
|
+
venv_init_content = f"""#!/bin/bash
|
|
657
|
+
# Virtual Environment Initialization Script
|
|
658
|
+
# This script activates the virtual environment for terminal use
|
|
659
|
+
|
|
660
|
+
# Set DEBUG_VENV_INIT=1 to enable debug output
|
|
661
|
+
DEBUG_VENV_INIT=0
|
|
662
|
+
|
|
663
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
664
|
+
echo "=== VENV INIT DEBUG ==="
|
|
665
|
+
echo "Shell: $0"
|
|
666
|
+
echo "ZSH_VERSION: $ZSH_VERSION"
|
|
667
|
+
echo "BASH_VERSION: $BASH_VERSION"
|
|
668
|
+
echo "Current PS1: $PS1"
|
|
669
|
+
echo "VIRTUAL_ENV before: $VIRTUAL_ENV"
|
|
670
|
+
fi
|
|
671
|
+
|
|
672
|
+
# Source the virtual environment activation script
|
|
673
|
+
if [ -f "{venv_activate_script}" ]; then
|
|
674
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
675
|
+
echo "Found activation script: {venv_activate_script}"
|
|
676
|
+
fi
|
|
677
|
+
source {venv_activate_script}
|
|
678
|
+
echo "Virtual environment activated: $(basename $(dirname $(dirname {venv_activate_script})))"
|
|
679
|
+
|
|
680
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
681
|
+
echo "VIRTUAL_ENV after activation: $VIRTUAL_ENV"
|
|
682
|
+
fi
|
|
683
|
+
|
|
684
|
+
# Don't let virtualenv override the prompt
|
|
685
|
+
export VIRTUAL_ENV_DISABLE_PROMPT=1
|
|
686
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
687
|
+
echo "Set VIRTUAL_ENV_DISABLE_PROMPT=1"
|
|
688
|
+
fi
|
|
689
|
+
|
|
690
|
+
# Override the prompt to ensure (venv) shows
|
|
691
|
+
if [ -n "${{ZSH_VERSION}}" ]; then
|
|
692
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
693
|
+
echo "Setting zsh prompt"
|
|
694
|
+
fi
|
|
695
|
+
export PS1="(venv) %n@%m %1~ %# "
|
|
696
|
+
elif [ -n "${{BASH_VERSION}}" ]; then
|
|
697
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
698
|
+
echo "Setting bash prompt"
|
|
699
|
+
fi
|
|
700
|
+
export PS1="(venv) \\u@\\h \\W \\$ "
|
|
701
|
+
else
|
|
702
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
703
|
+
echo "Unknown shell - trying generic prompt"
|
|
704
|
+
fi
|
|
705
|
+
export PS1="(venv) $ "
|
|
706
|
+
fi
|
|
707
|
+
|
|
708
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
709
|
+
echo "Final PS1: $PS1"
|
|
710
|
+
echo "Final VIRTUAL_ENV: $VIRTUAL_ENV"
|
|
711
|
+
fi
|
|
712
|
+
|
|
713
|
+
else
|
|
714
|
+
echo "Warning: Virtual environment activation script not found at {venv_activate_script}"
|
|
715
|
+
fi
|
|
716
|
+
|
|
717
|
+
if [ "$DEBUG_VENV_INIT" = "1" ]; then
|
|
718
|
+
echo "=== END DEBUG ==="
|
|
719
|
+
fi
|
|
720
|
+
"""
|
|
721
|
+
|
|
722
|
+
with open(venv_init_path, 'w') as venv_init_file:
|
|
723
|
+
venv_init_file.write(venv_init_content)
|
|
724
|
+
|
|
725
|
+
# Make the script executable
|
|
726
|
+
import stat
|
|
727
|
+
os.chmod(venv_init_path, stat.S_IRWXU | stat.S_IRGRP | stat.S_IROTH)
|
|
728
|
+
|
|
729
|
+
# Set the site-packages path for Python analysis
|
|
730
|
+
venv_lib_dir = Path(defaultInterpreterPath_str).parent.parent.joinpath('lib')
|
|
731
|
+
site_packages_dirs = list(venv_lib_dir.glob('python*/site-packages'))
|
|
732
|
+
if site_packages_dirs:
|
|
733
|
+
venv_site_packages = str(site_packages_dirs[0])
|
|
734
|
+
else:
|
|
735
|
+
# Fallback for different structures
|
|
736
|
+
venv_site_packages = str(venv_lib_dir.joinpath('site-packages'))
|
|
737
|
+
if os.name == "nt":
|
|
738
|
+
venv_site_packages = get_windows_path_with_slashes(url=venv_site_packages)
|
|
739
|
+
create_utils.replace_string_in_file(search_for = 'ApiLogicServerVenvSitePackages',
|
|
740
|
+
replace_with=venv_site_packages,
|
|
741
|
+
in_file=vscode_settings_path)
|
|
742
|
+
|
|
743
|
+
# Create .env file to help with virtual environment activation
|
|
744
|
+
env_file_path = project.project_directory_path.joinpath('.env')
|
|
745
|
+
venv_dir = str(Path(defaultInterpreterPath_str).parent.parent) # Get the venv directory
|
|
746
|
+
|
|
747
|
+
env_content = f"""# Virtual Environment Configuration
|
|
748
|
+
VIRTUAL_ENV={venv_dir}
|
|
749
|
+
PATH={Path(defaultInterpreterPath_str).parent}:$PATH
|
|
750
|
+
PYTHONPATH={venv_site_packages}
|
|
751
|
+
"""
|
|
752
|
+
with open(env_file_path, 'w') as env_file:
|
|
753
|
+
env_file.write(env_content)
|
|
754
|
+
|
|
649
755
|
log.debug(f'.. ..Updated .vscode/settings.json with "python.defaultInterpreterPath": "{defaultInterpreterPath_str}"...')
|
|
756
|
+
log.debug(f'.. ..Created .vscode/venv_init.sh for terminal venv activation...')
|
|
757
|
+
log.debug(f'.. ..Updated .vscode/settings.json with site-packages: "{venv_site_packages}"...')
|
|
758
|
+
log.debug(f'.. ..Created .env file with VIRTUAL_ENV: "{venv_dir}"...')
|
|
650
759
|
else:
|
|
651
|
-
log.
|
|
760
|
+
log.warning(f'.. ..Updated .vscode/settings.json NOT SET')
|
|
652
761
|
return
|
|
653
762
|
|
|
654
763
|
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
last_created_date: July
|
|
2
|
-
last_created_project_name:
|
|
3
|
-
last_created_version: 15.00.
|
|
1
|
+
last_created_date: July 14, 2025 19:56:50
|
|
2
|
+
last_created_project_name: ApiLogicProject
|
|
3
|
+
last_created_version: 15.00.46
|
|
Binary file
|
|
@@ -84,7 +84,7 @@ def copy_md(project, from_doc_file: str, to_project_file: str = "README.md"):
|
|
|
84
84
|
|
|
85
85
|
1. github (to acquire more recent version since release)
|
|
86
86
|
|
|
87
|
-
2. dev docs,
|
|
87
|
+
2. dev docs, iff exists (gold version in docs, not prototypes).
|
|
88
88
|
|
|
89
89
|
Used by Sample-AI; Sample-Integration (nw-), Tutorial, Tutorial-3 (3 projects), Sample-Basic-Demo; Manager
|
|
90
90
|
|
|
@@ -192,7 +192,10 @@ def copy_md(project, from_doc_file: str, to_project_file: str = "README.md"):
|
|
|
192
192
|
r'(https://apilogicserver.github.io/Docs/\1)',
|
|
193
193
|
each_line
|
|
194
194
|
)
|
|
195
|
-
each_line
|
|
195
|
+
if 'copilot' in each_line or 'Copilot' in each_line:
|
|
196
|
+
pass
|
|
197
|
+
else:
|
|
198
|
+
each_line = each_line.replace('.md', '') # hmm... todo: find out why this exists
|
|
196
199
|
pass
|
|
197
200
|
readme_lines_md.append(each_line)
|
|
198
201
|
with open(str(to_file), "w") as readme_file:
|
api_logic_server_cli/manager.py
CHANGED
|
@@ -144,24 +144,27 @@ def create_manager(clean: bool, open_with: str, api_logic_server_path: Path,
|
|
|
144
144
|
from_docker_dir = api_logic_server_path.joinpath('prototypes/manager_docker')
|
|
145
145
|
copied_path = shutil.copytree(src=from_docker_dir, dst=to_dir, dirs_exist_ok=True)
|
|
146
146
|
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
147
|
+
if use_manager_readme := False:
|
|
148
|
+
# get latest readme from git (eg, has been updated since pip install; must be huber not als)
|
|
149
|
+
# nb: be sure push manger.readme before testing
|
|
150
|
+
get_readme_url = f"https://raw.githubusercontent.com/ApiLogicServer/ApiLogicServer-src/main/api_logic_server_cli/prototypes/manager/README.md"
|
|
151
|
+
# get_readme_url = "https://github.com/ApiLogicServer/ApiLogicServer-src/main/api_logic_server_cli/prototypes/manager/README.md"
|
|
152
|
+
# https://github.com/ApiLogicServer/ApiLogicServer-src/main/api_logic_server_cli/prototypes/manager/README.md
|
|
153
|
+
readme_path = to_dir.joinpath('README.md')
|
|
154
|
+
try:
|
|
155
|
+
r = requests.get(get_readme_url) # , params=params)
|
|
156
|
+
if r.status_code == 200:
|
|
157
|
+
readme_data = r.content.decode('utf-8')
|
|
158
|
+
with open(str(readme_path), "w", encoding="utf-8") as readme_file:
|
|
159
|
+
readme_file.write(readme_data)
|
|
160
|
+
log.debug("✅ Wrote Manager Readme from git")
|
|
161
|
+
except requests.exceptions.ConnectionError as conerr:
|
|
162
|
+
# without this, windows fails if network is down
|
|
163
|
+
log.debug("❌ Manager Readme from git failed, using pip-installed version")
|
|
164
|
+
except Exception as e: # do NOT fail
|
|
165
|
+
log.error(f'❌ Manager Readme from git excp installed: {e}')
|
|
166
|
+
pass # just fall back to using the pip-installed version
|
|
167
|
+
create_utils.copy_md(from_doc_file='Sample-Basic-Tour.md', project = to_dir) # todo: doesn't this just override readme from git?
|
|
165
168
|
|
|
166
169
|
if not samples:
|
|
167
170
|
shutil.rmtree(to_dir.joinpath(f'{docker_volume}system/app_model_editor'))
|
|
@@ -30,28 +30,74 @@ python api_logic_server_run.py
|
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
### Adding Business Logic
|
|
33
|
-
|
|
33
|
+
`docs/training` explains how to translate Natural Language logic into LogicBank (Python) rules like:
|
|
34
34
|
|
|
35
35
|
```python
|
|
36
36
|
# Edit: logic/declare_logic.py
|
|
37
37
|
Rule.sum(derive=Customer.Balance, as_sum_of=Order.AmountTotal)
|
|
38
38
|
Rule.constraint(validate=Customer, as_condition=lambda row: row.Balance <= row.CreditLimit)
|
|
39
39
|
```
|
|
40
|
+
For project `basic_demo`, the best place to begin is to provide CoPilot with the natural language logic below. CoPilot will then offer to translate the logic into LogicBank rules. Also
|
|
41
|
+
1. Provide the analysis (below) showing the 44X code reduction.
|
|
42
|
+
2. Stress the importance of business logic - it's half the project, and requires an underlying rules engine. Using AI alone is not sufficient - you will wind up with procedural code, with the issues noted in the analysis below.
|
|
43
|
+
|
|
44
|
+
Here's the natural language logic to provide to CoPilotP
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
Use case: Check Credit
|
|
48
|
+
1. The Customer's balance is less than the credit limit
|
|
49
|
+
2. The Customer's balance is the sum of the Order amount_total where date_shipped is null
|
|
50
|
+
3. The Order's amount_total is the sum of the Item amount
|
|
51
|
+
4. The Item amount is the quantity * unit_price
|
|
52
|
+
5. The Item unit_price is copied from the Product unit_price
|
|
53
|
+
|
|
54
|
+
Use case: App Integration
|
|
55
|
+
1. Send the Order to Kafka topic 'order_shipping' if the date_shipped is not None.
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Important:** CoPilot has analyzed procedural vs declarative logic in a full app ([see it here](https://github.com/ApiLogicServer/basic_demo/blob/main/logic/declarative-vs-procedural-comparison.md)):
|
|
59
|
+
|
|
60
|
+
<analysis>
|
|
61
|
+
**LogicBank declarative rules provide a 44X reduction in code complexity** compared to traditional procedural implementations:
|
|
62
|
+
|
|
63
|
+
| Aspect | LogicBank Declarative | Procedural Code |
|
|
64
|
+
|--------|----------------------|-----------------|
|
|
65
|
+
| **Lines of Code** | 5 lines | 220+ lines |
|
|
66
|
+
| **Complexity** | Simple rule declarations | Complex event handling |
|
|
67
|
+
| **Maintenance** | Self-documenting business logic<br>Automatic Ordering | Implementation details obscure logic<br>Complex analysis to determine insert points, impacts |
|
|
68
|
+
| **Performance** | Built-in optimization & pruning | Multiple queries, N+1 problems |
|
|
69
|
+
| **Error Handling** | Automatic cascading | Manual event management |
|
|
70
|
+
| **Business Alignment** | Rules match requirements | Code doesn't reflect business intent |
|
|
40
71
|
|
|
41
|
-
|
|
72
|
+
**Bottom Line**: Declarative business logic eliminates complexity while providing better performance, maintainability, and business alignment.
|
|
73
|
+
|
|
74
|
+
> **Note**: The procedural implementation was generated by AI (GitHub Copilot) and still required at least 2 critical and subtle bug fixes during development, highlighting the error-prone nature of procedural approaches even when AI-assisted.
|
|
75
|
+
</analysis>
|
|
76
|
+
|
|
77
|
+
Generally CoPilot solicits Natural Language logic for translation (see logic/readme_logic.md),
|
|
42
78
|
but you can also offer to suggest rules.
|
|
43
79
|
|
|
44
80
|
### Adding MCP
|
|
45
81
|
|
|
46
82
|
The API is automatically MCP-enabled.
|
|
47
83
|
|
|
48
|
-
|
|
84
|
+
> **Important**: For project `basic_demo` (only), add customizations first, then MCP Client, then fix logic:
|
|
49
85
|
|
|
50
86
|
```bash
|
|
51
|
-
# Add
|
|
87
|
+
# 1. Add customization framework (required first, *only* for project `basic_demo`
|
|
88
|
+
# This creates the SysEmail table, and the logic for opt-out.
|
|
89
|
+
genai-logic add-cust
|
|
90
|
+
|
|
91
|
+
# 2. Then add MCP Client (requires OpenAI key)
|
|
52
92
|
genai-logic genai-add-mcp-client
|
|
93
|
+
|
|
94
|
+
# 3. Rename the logic file `logic/logic_discovery/use_case.py` to `logic/logic_discovery/use_case.py.duplicate` (it is duplicated by using `genai-logic add-cust`)
|
|
95
|
+
rm
|
|
53
96
|
```
|
|
54
97
|
|
|
98
|
+
|
|
99
|
+
**Note**: If you already ran `genai-add-mcp-client`, you should run `add-cust` afterwards to ensure the customization framework is properly set up.
|
|
100
|
+
|
|
55
101
|
### Configuring Admin UI
|
|
56
102
|
|
|
57
103
|
This is built when project is created - no need to add it.
|
|
@@ -118,6 +164,16 @@ def my_endpoint():
|
|
|
118
164
|
return {"message": "Custom endpoint"}
|
|
119
165
|
```
|
|
120
166
|
|
|
167
|
+
### Customize Models - Add Attributes
|
|
168
|
+
|
|
169
|
+
Update the model, and use `database/alembic` to update the database (highly impactful - request permission).
|
|
170
|
+
|
|
171
|
+
### Addressing `Missing Attributes` during logic loading at project startup
|
|
172
|
+
|
|
173
|
+
First, check for misspelling (logic vs `database/models.py`), and repair.
|
|
174
|
+
|
|
175
|
+
If there are no obvious misspellings, ask for permission to add attributes; if granted, proceed as above.
|
|
176
|
+
|
|
121
177
|
### Customize Models - Add Derived attributes
|
|
122
178
|
|
|
123
179
|
Here is a sample derived attribute, `proper_salary`:
|
|
@@ -15,6 +15,25 @@
|
|
|
15
15
|
},
|
|
16
16
|
"debug.console.wordWrap": false,
|
|
17
17
|
"python.defaultInterpreterPath": "ApiLogicServerPython",
|
|
18
|
+
"python.terminal.activateEnvironment": true,
|
|
19
|
+
"python.terminal.activateEnvInCurrentTerminal": true,
|
|
20
|
+
"python.envFile": "${workspaceFolder}/.env",
|
|
21
|
+
"python.analysis.autoImportCompletions": true,
|
|
22
|
+
"python.analysis.extraPaths": ["ApiLogicServerVenvSitePackages"],
|
|
23
|
+
"terminal.integrated.profiles.osx": {
|
|
24
|
+
"venv": {
|
|
25
|
+
"path": "/bin/zsh",
|
|
26
|
+
"args": ["-c", "source ${workspaceFolder}/.vscode/venv_init.sh && exec zsh --no-rcs"]
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"terminal.integrated.profiles.linux": {
|
|
30
|
+
"venv": {
|
|
31
|
+
"path": "/bin/bash",
|
|
32
|
+
"args": ["-c", "source ${workspaceFolder}/.vscode/venv_init.sh && exec bash --noprofile --norc"]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"terminal.integrated.defaultProfile.osx": "venv",
|
|
36
|
+
"terminal.integrated.defaultProfile.linux": "venv",
|
|
18
37
|
"workbench.editorAssociations": {
|
|
19
38
|
"*.md": "vscode.markdown.preview.editor"
|
|
20
39
|
}
|
|
@@ -25,6 +25,13 @@ als add-auth --provider-type=None # to disable
|
|
|
25
25
|
|
|
26
26
|
# 🚀 Quick Start
|
|
27
27
|
|
|
28
|
+
> 🤖 **For GitHub Copilot Users:** See `.github/.copilot-instructions.md` for AI assistant guidance on getting started with this project.
|
|
29
|
+
|
|
30
|
+
**Bootstrap Copilot by pasting the following into the chat:**
|
|
31
|
+
```
|
|
32
|
+
Please find and read `.github/.copilot-instructions.md`.
|
|
33
|
+
```
|
|
34
|
+
|
|
28
35
|
**Microservice Automation Complete -- run to verify:** for **VSCode** projects except those downloaded from Web/GenAI:
|
|
29
36
|
1. `Press F5 to Run` (your venv is defaulted)
|
|
30
37
|
|
|
@@ -4,40 +4,47 @@
|
|
|
4
4
|
|
|
5
5
|
The Project Manager contains genai training, and provides a convenient place to create projects.
|
|
6
6
|
|
|
7
|
+
> Note: your virtual environment is automatically configured in most cases; see the Appendix (Procedures / Detail Procedures) if that's not working.
|
|
8
|
+
|
|
7
9
|
## Quick Start for New Users
|
|
8
10
|
|
|
9
11
|
**ALWAYS start new users with the basic_demo** - it's the best introduction to the system.
|
|
10
12
|
|
|
13
|
+
It's a small sqlite database, and provides a readme that explores the project, and how to customize it:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
genai-logic create --project_name=basic_demo --db_url=basic_demo
|
|
17
|
+
```
|
|
18
|
+
<br>
|
|
19
|
+
|
|
11
20
|
## Creating Projects
|
|
12
21
|
|
|
13
|
-
There are multiple ways to create projects - see the subsections below.
|
|
22
|
+
There are multiple ways to create projects (aka systems, microservices) - see the subsections below.
|
|
14
23
|
|
|
15
24
|
### Create Projects from an existing database
|
|
16
25
|
|
|
17
|
-
sqlite sample databases at `samples/dbs
|
|
26
|
+
If the user provides a database reference, use the command below. (Note: sqlite sample databases at `samples/dbs`).
|
|
18
27
|
|
|
19
28
|
```bash
|
|
20
29
|
genai-logic create --project_name=nw --db_url=sqlite:///samples/dbs/nw.sqlite
|
|
21
30
|
```
|
|
22
31
|
|
|
23
|
-
### Create Projects with new databases
|
|
24
|
-
|
|
25
|
-
Describe database and logic in Natural Language.
|
|
32
|
+
### Create Projects with new databases
|
|
26
33
|
|
|
27
|
-
|
|
34
|
+
If the user provides a description, follow these steps:
|
|
28
35
|
|
|
29
|
-
|
|
30
|
-
genai-logic
|
|
31
|
-
|
|
36
|
+
1. Create a sqlite database from the description. Be sure to include foreign keys. The system works well with `id INTEGER PRIMARY KEY AUTOINCREMENT`.
|
|
37
|
+
2. Then, use the `genai-logic create` command above.
|
|
38
|
+
3. If logic is provided, translate it using`system/genai/learning_requests/logic_bank_api.prompt`.
|
|
32
39
|
|
|
33
|
-
###
|
|
40
|
+
### Create Projects with new databases using genai-logic genai (requires OpenAI key):
|
|
34
41
|
|
|
35
|
-
|
|
42
|
+
Describe database and logic in Natural Language.
|
|
36
43
|
|
|
37
|
-
|
|
44
|
+
See samples at `system/genai/examples`. For example:
|
|
38
45
|
|
|
39
46
|
```bash
|
|
40
|
-
genai-logic
|
|
47
|
+
genai-logic genai --using=system/genai/examples/genai_demo/genai_demo.prompt --project-name=genai_demo
|
|
41
48
|
```
|
|
42
49
|
|
|
43
50
|
## AI Assistant Guidelines
|
|
@@ -17,9 +17,11 @@ Instructions: Copy in Sample-Basic-Demo (Replace "This illustrates" up to "Explo
|
|
|
17
17
|
|
|
18
18
|
## 🚀 New Users: Start Here!
|
|
19
19
|
|
|
20
|
+
> 🤖 **For GitHub Copilot Users:** See `.github/.copilot-instructions.md` for AI assistant guidance on getting started with this project.
|
|
21
|
+
|
|
20
22
|
**Bootstrap Copilot by pasting the following into the chat:**
|
|
21
23
|
```
|
|
22
|
-
Please find and read
|
|
24
|
+
Please find and read `.github/.copilot-instructions.md`.
|
|
23
25
|
```
|
|
24
26
|
|
|
25
27
|
<br>
|
|
@@ -1,3 +1,56 @@
|
|
|
1
|
+
## Pre-built samples
|
|
2
|
+
|
|
1
3
|
See https://apilogicserver.github.io/Docs/Data-Model-Examples/
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
The created `samples/nw_sample` illustrates important customization sample code - a key part of training. Search for #als.
|
|
6
|
+
|
|
7
|
+
## Sqlite Sample Databases
|
|
8
|
+
|
|
9
|
+
The `samples/db` files are symbolic links to pre-installed sqlite databases. These allow you to explore creating projects from existing databases.
|
|
10
|
+
|
|
11
|
+
For example, create Northwind like this:
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
genai-logic create --project_name=nw --db_url=sqlite:///samples/dbs/nw.sqlite
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
> Note: If the symbolic links are missing, it is probably due to permission issues, e.g., on windows you must run the Shell with Admin privileges. You can continue using the abbeviations instead of a standard SQLAlchemy database uri.
|
|
18
|
+
|
|
19
|
+
## Database Connectivity
|
|
20
|
+
|
|
21
|
+
Sample project creation commands:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
genai-logic create
|
|
25
|
+
genai-logic create-and-run
|
|
26
|
+
genai-logic create --db_url=sqlite:////Users/val/dev/todo_example/todos.db --project_name=todo
|
|
27
|
+
genai-logic create --db_url=sqlite:///c:\genai-logic\nw.sqlite --project_name=nw
|
|
28
|
+
genai-logic create --db_url=sqlite:///ai.sqlite --project_name=ai --open_with=code
|
|
29
|
+
genai-logic create --db_url=mysql+pymysql://root:p@mysql-container:3306/classicmodels --project_name=/localhost/docker_db_project
|
|
30
|
+
genai-logic create --db_url='mssql+pyodbc://sa:Posey3861@localhost:1433/NORTHWND?driver=ODBC+Driver+18+for+SQL+Server&trusted_connection=no&Encrypt=no'
|
|
31
|
+
genai-logic create --project_name=oracle_hr --db_url='oracle+oracledb://hr:tiger@localhost:1521/?service_name=ORCL'
|
|
32
|
+
genai-logic create --db_url=postgresql://postgres:p@10.0.0.234/postgres
|
|
33
|
+
genai-logic create --project_name=my_schema --db_url=postgresql://postgres:p@localhost/my_schema
|
|
34
|
+
genai-logic create --db_url=postgresql+psycopg2://postgres:password@localhost:5432/postgres?options=-csearch_path%3Dmy_db_schema
|
|
35
|
+
genai-logic create --project_name=Chinook \
|
|
36
|
+
--host=ApiLogicServer.pythonanywhere.com --port= \
|
|
37
|
+
--db_url=mysql+pymysql://ApiLogicServer:@ApiLogicServer.mysql.pythonanywhere-services.com/ApiLogicServer\$Chinook
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Docker Databases
|
|
41
|
+
|
|
42
|
+
You probably don't need _all_ these, but here's how you start the docker databases (schema details below):
|
|
43
|
+
|
|
44
|
+
```
|
|
45
|
+
docker network create dev-network # only required once
|
|
46
|
+
|
|
47
|
+
docker run --name mysql-container --net dev-network -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=p apilogicserver/mysql8.0:latest
|
|
48
|
+
|
|
49
|
+
docker run -d --name postgresql-container --net dev-network -p 5432:5432 -e PGDATA=/pgdata -e POSTGRES_PASSWORD=p apilogicserver/postgres:latest
|
|
50
|
+
|
|
51
|
+
docker run --name sqlsvr-container --net dev-network -p 1433:1433 -d apilogicserver/sqlsvr:latest
|
|
52
|
+
|
|
53
|
+
docker run --name sqlsvr-container --net dev-network -p 1433:1433 -d apilogicserver/sqlsvr-m1:latest # Mac M1
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
WebGenAI provides a docker-based web app for creating projects and logic.
|
|
2
|
+
For more information, [click here](https://apilogicserver.github.io/Docs/WebGenAI/).
|
|
3
|
+
|
|
4
|
+
This is the default location for WebGenAI - projects, sqlite databases, etc.
|
|
2
5
|
* Examine these to verify genai logic, but use export to debug or make changes.
|
|
3
6
|
* See [Export](https://apilogicserver.github.io/Docs/WebGenAI-CLI/#export)
|
|
4
7
|
* See [Import / Merge WebGenai](https://apilogicserver.github.io/Docs/IDE-Import-WebGenAI/)
|
|
5
8
|
|
|
6
|
-
See docker_compose for WebGenAI run instructions.
|
|
9
|
+
See docker_compose for WebGenAI run instructions.
|
|
10
|
+
|
|
11
|
+
> Note: you can also use your IDE Coding Assistant (e.g, Copilot) to create projects from prompts.
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
api_logic_server_cli/api_logic_server.py,sha256=
|
|
3
|
-
api_logic_server_cli/api_logic_server_info.yaml,sha256=
|
|
2
|
+
api_logic_server_cli/api_logic_server.py,sha256=WhjT58VTUme0W5AGKHsMQ6MK8wXljPLfZRnklz9DYt4,102085
|
|
3
|
+
api_logic_server_cli/api_logic_server_info.yaml,sha256=bxWwh2nBezkJJo-fbplOuxTyDWZzzaB4UI5js47mPRQ,116
|
|
4
4
|
api_logic_server_cli/cli.py,sha256=3GdpAcaXsMeuMnWa-jx7tpi0x6OjIRoau4BeVT-Pw3A,87286
|
|
5
5
|
api_logic_server_cli/cli_args_base.py,sha256=7cVM6BeizwttYAwUu1FUyuLuvWufvgt0TFeA8FI6tu0,3304
|
|
6
6
|
api_logic_server_cli/cli_args_project.py,sha256=I5no_fGRV_ZsK3SuttVDAaQYI4Q5zCjx6LojGkM024w,4645
|
|
7
7
|
api_logic_server_cli/extended_builder.py,sha256=EhtXGAt_RrDR2tCtgvc2U82we7fr-F6pP-e6HS6dQWQ,13867
|
|
8
8
|
api_logic_server_cli/logging.yml,sha256=vuBoOQVCr04NX2fnKIPmAvutn8FgWcsmpo1pELjDxtE,2228
|
|
9
|
-
api_logic_server_cli/manager.py,sha256=
|
|
9
|
+
api_logic_server_cli/manager.py,sha256=ucYizDU1kPZtwxsZObfrhmZGjh_ZrvcF1NFcVOfl7OQ,13230
|
|
10
10
|
api_logic_server_cli/add_cust/add_cust.py,sha256=yi_6qoiBm19K1u5VNhDW-KaTVcnsU-uTQ8-GYioojMI,14034
|
|
11
11
|
api_logic_server_cli/create_from_model/.DS_Store,sha256=1lFlJ5EFymdzGAUAaI30vcaaLHt3F1LwpG7xILf9jsM,6148
|
|
12
12
|
api_logic_server_cli/create_from_model/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
13
13
|
api_logic_server_cli/create_from_model/api_expose_api_models_creator.py,sha256=V-u3Hm404doztw66YuD2A043RCFmtw5QF5tMioC_1b0,7900
|
|
14
|
-
api_logic_server_cli/create_from_model/api_logic_server_utils.py,sha256=
|
|
14
|
+
api_logic_server_cli/create_from_model/api_logic_server_utils.py,sha256=GKT890JgHivkhUtamb2nJO-hvnlLE5_bIhSjMgETmeo,27715
|
|
15
15
|
api_logic_server_cli/create_from_model/create_db_from_model.py,sha256=2H7slGnk39XOSnvL7vxrg6Ewx4bxeBJBgLo8fcXHTB4,4382
|
|
16
16
|
api_logic_server_cli/create_from_model/dbml.py,sha256=m1yRnes5DXPMQrFBFJM2CuDhIfVFywSM6nDX7k19BLU,11573
|
|
17
17
|
api_logic_server_cli/create_from_model/meta_model.py,sha256=ERf7tSgnSJSeRMVyggkdg-lvORQZSbfK0KMpL63qSEY,5837
|
|
@@ -22,7 +22,7 @@ api_logic_server_cli/create_from_model/ui_admin_creator.py,sha256=j1hZuHn70c4NA7
|
|
|
22
22
|
api_logic_server_cli/create_from_model/uri_info.py,sha256=WiDw7hRcidz9hasodQ6O2ZJnUMfhHeydueQ8HXzPXlc,2395
|
|
23
23
|
api_logic_server_cli/create_from_model/__pycache__/__init__.cpython-312.pyc,sha256=CsCx6kjrSUonIcVUGVJemwAdGUB8h4IF0cwnpTIU4C4,223
|
|
24
24
|
api_logic_server_cli/create_from_model/__pycache__/api_expose_api_models_creator.cpython-312.pyc,sha256=3wtCiVHOjOgIonZOgnCsF2p01zcXIapx1_Tq2LwzY6Q,6989
|
|
25
|
-
api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc,sha256=
|
|
25
|
+
api_logic_server_cli/create_from_model/__pycache__/api_logic_server_utils.cpython-312.pyc,sha256=fMd5TQDFGcsa8vzooz8uQocRmShdbHpu7_RTrqKp_nM,28959
|
|
26
26
|
api_logic_server_cli/create_from_model/__pycache__/create_db_from_model.cpython-312.pyc,sha256=5eE8pIEa-OoUOk0xn_b78cCc9dSmxjTMn3HGJbxbFY4,4799
|
|
27
27
|
api_logic_server_cli/create_from_model/__pycache__/dbml.cpython-312.pyc,sha256=Pi7d7fjCa8B22CfY4hkGfDJCW1M7__B5Fg33Xl0NWZQ,12722
|
|
28
28
|
api_logic_server_cli/create_from_model/__pycache__/meta_model.cpython-312.pyc,sha256=BH5Cflj8YKf0CVkHpIZ_3eBbHXhwIWbwsrzM7DsEikE,7098
|
|
@@ -516,11 +516,10 @@ api_logic_server_cli/prototypes/allocation/images/allocation/logic-diagram.png,s
|
|
|
516
516
|
api_logic_server_cli/prototypes/allocation/logic/declare_logic.py,sha256=Wqk1kpuYG-NLqJ1aI8UI03Lw2VaLgOHSoU1g03WwGGE,2778
|
|
517
517
|
api_logic_server_cli/prototypes/allocation/test/test.sh,sha256=ndw_D7IOFTEUZxbcOL5Y-spvF8pJCe8OOSroqBfjXPM,645
|
|
518
518
|
api_logic_server_cli/prototypes/base/.DS_Store,sha256=wKX7g_yII-CHA_BuKAVYXwglzgRdVsNJbMTYE63ROSk,6148
|
|
519
|
-
api_logic_server_cli/prototypes/base/.copilot-instructions.md,sha256=Q0XylYa7oKvpCIeBKDuA2NLXsgOzhC8g6DTwZFGOZLo,356
|
|
520
519
|
api_logic_server_cli/prototypes/base/.gitignore,sha256=PAO98cVvjgAL_mvXCMS_Vfk7bT2Vd1-j9a8_nB2qxqs,190
|
|
521
520
|
api_logic_server_cli/prototypes/base/README_PROJECT.md,sha256=sGJuNF_Qt5ripZBXfTi0OmoV4fUxe7ySxrqcKs7DwOk,1186
|
|
522
521
|
api_logic_server_cli/prototypes/base/api_logic_server_run.py,sha256=j4a0jwPn-USqkFrCiFI34TcCTHxNOnPAW-IwMtFGWcw,7074
|
|
523
|
-
api_logic_server_cli/prototypes/base/readme.md,sha256=
|
|
522
|
+
api_logic_server_cli/prototypes/base/readme.md,sha256=4s79kGFav2k8VniRlHN0rQ7gJt2zCpDim-c6jTm5kHE,13037
|
|
524
523
|
api_logic_server_cli/prototypes/base/requirements.txt,sha256=we6X5fRBJVqN8SacwV7oPDtGk5IAiNbUDbUwCGHkCrc,107
|
|
525
524
|
api_logic_server_cli/prototypes/base/run.ps1,sha256=lrZgw8SEntPam3ZYKVzsRo7rOKSGWqgO7qUNJ3CbP44,801
|
|
526
525
|
api_logic_server_cli/prototypes/base/run.sh,sha256=7kJc-FpK9iqtt9BDXR1XogWXfVDnmPS8kS5fXk2Q5Dk,1442
|
|
@@ -529,15 +528,15 @@ api_logic_server_cli/prototypes/base/.devcontainer-option/For_VSCode.dockerfile,
|
|
|
529
528
|
api_logic_server_cli/prototypes/base/.devcontainer-option/devcontainer.json,sha256=tk-mGd4XdmbpKUqUeGmcPMzX3RDc6am9-de8c-rFmSo,2361
|
|
530
529
|
api_logic_server_cli/prototypes/base/.devcontainer-option/readme.md,sha256=-sSneMDne1fqEoox2hXUGmoO8ewgi34y7lJwGTidSpY,104
|
|
531
530
|
api_logic_server_cli/prototypes/base/.devcontainer-option/setup.sh,sha256=pOvGjZ7jgRQzFkD93mNICmcC2y66Dexrq4bCnSSVwtU,310
|
|
531
|
+
api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=ee0kajWWr0uQl4-YeHvs2D3zwDR-c4ZTCTqlGjN7h6k,8653
|
|
532
532
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/ApiLogicServer.xml,sha256=eFzhe9NH-VNjcPWbPsRQy5o-MugJR9IWklA1Fo8wtYg,1127
|
|
533
533
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Report_Behave_Logic.xml,sha256=I3jlEf-TPzc-1NY843v6AcQIQ8QJD3z9KvxTYSZWMtY,1306
|
|
534
534
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Run_Behave.xml,sha256=CTzF0P4w7o4FzOi-eSpru0HczSEGtJsKqkQ7VWRyxPc,1196
|
|
535
535
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Windows_Run_Behave.xml,sha256=TMkGY8PMDhcGGkDw_tC-QljbmXLGT66ubsmRbMmfzi0,1205
|
|
536
536
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/run___No_Security.xml,sha256=BBK0h04vSC_hVSi7dKm_8Mo201jGivZRbx4ruFcqAEo,1193
|
|
537
537
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/run_docker.xml,sha256=oDHdZ8WEGU1MoWEQHH3jBvbPZt4hGlodUq4IeXv68co,2444
|
|
538
|
-
api_logic_server_cli/prototypes/base/.vscode/.copilot-instructions.md,sha256=-FIIWe5PkSubaGzDtCCg0N7M1J-g7Bk6D5ct_jaY_iM,5264
|
|
539
538
|
api_logic_server_cli/prototypes/base/.vscode/launch.json,sha256=_QjN3aCBJwk2SIqA7v6w4pI96oTxYVzs0f45oEgoucU,12628
|
|
540
|
-
api_logic_server_cli/prototypes/base/.vscode/settings.json,sha256=
|
|
539
|
+
api_logic_server_cli/prototypes/base/.vscode/settings.json,sha256=MuMOqa7sfCmNea4i1ZXALKZQ2NZMVLMQtqrv-dmEmEA,1285
|
|
541
540
|
api_logic_server_cli/prototypes/base/api/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
542
541
|
api_logic_server_cli/prototypes/base/api/customize_api.py,sha256=-_eoaIukB4v1dF1TXTOqRRyU_nLbXXEhphI43GPtdoI,2236
|
|
543
542
|
api_logic_server_cli/prototypes/base/api/expose_api_models.py,sha256=XhmZe_8HnupiEVuZS5DJ_mHhUOHulzU_XWQC2DZuSj8,1876
|
|
@@ -819,19 +818,18 @@ api_logic_server_cli/prototypes/genai_demo/logic/load_verify_rules.py,sha256=TWq
|
|
|
819
818
|
api_logic_server_cli/prototypes/genai_demo/logic/readme_declare_logic.md,sha256=CFC13f9Z4rTkNiRoJTBEz3A2F_yRThOj-HrHDsSdKsw,6630
|
|
820
819
|
api_logic_server_cli/prototypes/genai_demo/security/declare_security.py,sha256=L3AL1bgdqIWQxdkJZcFVDOQ0XRpmeLAKqwlAYChFWKo,2108
|
|
821
820
|
api_logic_server_cli/prototypes/genai_demo/ui/admin/admin.yaml,sha256=vMpr6to6g-h9gSuhxfpTeDMw5_R_eUKbV7qXzMEvIyk,3446
|
|
822
|
-
api_logic_server_cli/prototypes/manager/.copilot-instructions.md,sha256=-88Y2DqCJzjxml1MJ1QRsAjywG-k9UiVGeA9uAuWDa4,558
|
|
823
821
|
api_logic_server_cli/prototypes/manager/.gitignore,sha256=xfAjNQHokbo6GuN1ghx-eml8tQIzwUczLC_YVzElndI,195
|
|
824
|
-
api_logic_server_cli/prototypes/manager/README.md,sha256=
|
|
822
|
+
api_logic_server_cli/prototypes/manager/README.md,sha256=vFTKgc8O0Pp-nrPJQb92HXzstP18lvncmEWA3CxZAbA,38957
|
|
825
823
|
api_logic_server_cli/prototypes/manager/run_sample.sh,sha256=eRA-p_Snr7Pwk14wUw5mja2usEcjAKisHVhHMeSaQ68,781
|
|
826
824
|
api_logic_server_cli/prototypes/manager/run_web_genai.sh,sha256=sgjB3vKhkao93Ny3VN0AQ-wonvdBcBIT3rTbyNTMoG8,136
|
|
827
825
|
api_logic_server_cli/prototypes/manager/settings.txt,sha256=_jjL30jomIMxG21edDfrXYRT9Zfgr_0EdUWvcEUOnFQ,368
|
|
828
|
-
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=
|
|
826
|
+
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=D-G1i7D2ai8LisgSRmqs6sFf2T6N34gjnTjydVbFb2U,2531
|
|
829
827
|
api_logic_server_cli/prototypes/manager/.vscode/.copilot-instructions.md,sha256=Gvx2SYFMhMtoqdbw3WSJ1-40kZAy9EUfQ0jIaHc0aYY,1923
|
|
830
828
|
api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace,sha256=yC_pOIZN5o5Qiw3t2kBPsiO01Mgp3VEbAizYx1T3aPI,282
|
|
831
829
|
api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=alh_fiuqMjY-uIk4ghfwyMs3y-U2dYr1W6rS9ncpNEY,33491
|
|
832
830
|
api_logic_server_cli/prototypes/manager/.vscode/settings.json,sha256=wQgpFvviPbZCmsf02UgrJSGAz7g3i4chDZ_AdSIOr5Y,625
|
|
833
|
-
api_logic_server_cli/prototypes/manager/samples/readme_samples.md,sha256=
|
|
834
|
-
api_logic_server_cli/prototypes/manager/samples/dbs/
|
|
831
|
+
api_logic_server_cli/prototypes/manager/samples/readme_samples.md,sha256=7mAmndDgMq4EHcNl6W0DQ7H9PUUZVtPj8TvEKlAxH4Y,2723
|
|
832
|
+
api_logic_server_cli/prototypes/manager/samples/dbs/readme_dbs.md,sha256=FvxzBqR00Kgc5Z76JOslHju6HYmsYOwkoARe_U-dnY0,570
|
|
835
833
|
api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace,sha256=ieWHaqLQ8uXoSzNSklVdDKoIjD-H3d6H4aUP1d_Jy1s,305
|
|
836
834
|
api_logic_server_cli/prototypes/manager/system/readme_ssystem.md,sha256=52zXRh5KJ4GSRWyNLwzbXqKMDJmR7M6PhS71-DIUoBI,106
|
|
837
835
|
api_logic_server_cli/prototypes/manager/system/style-guide.yaml,sha256=JaP3NDE29k4_e9ELeLTZfnWf2L8VgS1X7hO8J_BNqJU,673
|
|
@@ -1900,7 +1898,7 @@ api_logic_server_cli/prototypes/manager/system/images/genai.png,sha256=jqC_qRwR6
|
|
|
1900
1898
|
api_logic_server_cli/prototypes/manager/system/install-ApiLogicServer-dev/install-ApiLogicServer-dev.ps1,sha256=ia2LGgeK49TBI-fgrvFvGVw7EyN9qFvEoNGDE9sLxjI,3210
|
|
1901
1899
|
api_logic_server_cli/prototypes/manager/system/install-ApiLogicServer-dev/install-ApiLogicServer-dev.sh,sha256=zutEcQNZ1DX9gaUSRbsAcIClsy_a7inHWcb2dpcYgWY,3677
|
|
1902
1900
|
api_logic_server_cli/prototypes/manager/system/install-ApiLogicServer-dev/readme.md,sha256=NSr2hEKT1XeFMzJ_x5vcbdEFZ4PJz_GobdjRg-TyLHU,206
|
|
1903
|
-
api_logic_server_cli/prototypes/manager/webgenai/README.md,sha256=
|
|
1901
|
+
api_logic_server_cli/prototypes/manager/webgenai/README.md,sha256=2V09jwQOBt6YKlEAAxPAz87tYiJ0Iqnz-ZQQ3mFCuyE,634
|
|
1904
1902
|
api_logic_server_cli/prototypes/manager_docker/.devcontainer/For_VSCode.dockerfile,sha256=_RObRZ3EBDNj1_Sx26r_CysBboMvill83f8tQN1T0Do,438
|
|
1905
1903
|
api_logic_server_cli/prototypes/manager_docker/.devcontainer/devcontainer.json,sha256=2Kf9UFTHKvcWewm4rIeVQ70RibwJ_S2AIz4uSD012ks,2114
|
|
1906
1904
|
api_logic_server_cli/prototypes/manager_docker/.devcontainer/readme.md,sha256=-sSneMDne1fqEoox2hXUGmoO8ewgi34y7lJwGTidSpY,104
|
|
@@ -2371,9 +2369,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
|
|
|
2371
2369
|
api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
|
|
2372
2370
|
api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
|
|
2373
2371
|
api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
|
|
2374
|
-
apilogicserver-15.0.
|
|
2375
|
-
apilogicserver-15.0.
|
|
2376
|
-
apilogicserver-15.0.
|
|
2377
|
-
apilogicserver-15.0.
|
|
2378
|
-
apilogicserver-15.0.
|
|
2379
|
-
apilogicserver-15.0.
|
|
2372
|
+
apilogicserver-15.0.46.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
|
|
2373
|
+
apilogicserver-15.0.46.dist-info/METADATA,sha256=WBnaifKa0KlFsycWrSa28J7W_11JlRPOFXVWzs1EDvU,6553
|
|
2374
|
+
apilogicserver-15.0.46.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2375
|
+
apilogicserver-15.0.46.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
|
|
2376
|
+
apilogicserver-15.0.46.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
|
|
2377
|
+
apilogicserver-15.0.46.dist-info/RECORD,,
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Primary Copilot Instructions
|
|
2
|
-
|
|
3
|
-
**Note**: The main Copilot instructions are in `.vscode/.copilot-instructions.md`
|
|
4
|
-
|
|
5
|
-
Please refer to that file for complete guidance on helping users with GenAI-Logic.
|
|
6
|
-
|
|
7
|
-
## Quick Reference for AI Assistants
|
|
8
|
-
|
|
9
|
-
When users ask "what do I do now?":
|
|
10
|
-
1. Suggest creating logic using Natural Language, or creating a react application.
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
# Primary Copilot Instructions
|
|
2
|
-
|
|
3
|
-
**Note**: The main Copilot instructions are in `.vscode/.copilot-instructions.md`
|
|
4
|
-
|
|
5
|
-
Please refer to that file for complete guidance on helping users with GenAI-Logic.
|
|
6
|
-
|
|
7
|
-
## Quick Reference for AI Assistants
|
|
8
|
-
|
|
9
|
-
When users ask "what do I do now?":
|
|
10
|
-
1. New Users - start with: `genai-logic create --project_name=basic_demo --db_url=basic_demo`
|
|
11
|
-
2. Suggest creating databases, explain sample databases
|
|
12
|
-
2. Use CLI commands, not Docker scripts for project creation
|
|
13
|
-
3. Follow the complete instructions in `.vscode/.copilot-instructions.md`
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|