Skip to content

Commit c46cbbf

Browse files
chore: sync docs from jaseci-labs/jaseci (#489)
Automated sync of documentation from jaseci-labs/jaseci repository. - Updated jac-gpt-fullstack/services/docs with latest markdown files - Regenerated all_section_links.json with semantic embeddings Updated on: 2026-02-16 00:21:15 UTC Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent 08ba482 commit c46cbbf

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+3049
-1857
lines changed

jac-gpt-fullstack/services/docs/community/breaking-changes.md

Lines changed: 109 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,102 @@ This page documents significant breaking changes in Jac and Jaseci that may affe
66

77
MTLLM library is now deprecated and replaced by the byLLM package. In all place where `mtllm` was used before can be replaced with `byllm`.
88

9+
### Test Syntax Changed from Identifiers to String Descriptions
10+
11+
The `test` keyword now requires a **string description** instead of an identifier name. This gives tests more readable, natural-language names with spaces, punctuation, and proper casing.
12+
13+
**Before:**
14+
15+
```jac
16+
test my_calculator_add {
17+
calc = Calculator();
18+
assert calc.add(5) == 5;
19+
}
20+
21+
test walker_visits_all_nodes {
22+
root spawn MyWalker();
23+
assert visited_count == 3;
24+
}
25+
```
26+
27+
**After:**
28+
29+
```jac
30+
test "my calculator add" {
31+
calc = Calculator();
32+
assert calc.add(5) == 5;
33+
}
34+
35+
test "walker visits all nodes" {
36+
root spawn MyWalker();
37+
assert visited_count == 3;
38+
}
39+
```
40+
41+
**Key Changes:**
42+
43+
- Test names must be quoted strings: `test "description" { ... }` instead of `test name { ... }`
44+
- Spaces, punctuation, and mixed case are now allowed in test names
45+
- The string description is displayed as-is in test output (pytest, `jac test`)
46+
- A valid Python identifier is derived automatically for internal use (lowercased, non-alphanumeric replaced with `_`)
47+
48+
**Migration:** Replace `test identifier_name {` with `test "identifier name" {` in all `.jac` files (convert underscores to spaces).
49+
50+
### CLI Dependency Commands Redesigned (0.10.0)
51+
52+
The `jac add`, `jac install`, `jac remove`, and `jac update` commands were redesigned. Key behavioral changes:
53+
54+
- `jac add` now **requires** at least one package argument (previously, calling `jac add` with no args silently fell through to install)
55+
- `jac add` without a version spec now queries the installed version and records `~=X.Y` (previously recorded `>=0.0.0`)
56+
- `jac install` now syncs all dependency types (pip, git, and plugin-provided like npm)
57+
- New `jac update` command for updating dependencies to latest compatible versions
58+
- Virtual environment is now at `.jac/venv/` instead of `.jac/packages/`
59+
60+
### KWESC_NAME Syntax Changed from `<>` to Backtick
61+
62+
Keyword-escaped names now use a backtick (`` ` ``) prefix instead of the angle-bracket (`<>`) prefix. This affects any identifier that uses a Jac keyword as a variable, field, or parameter name.
63+
64+
**Before:**
65+
66+
```jac
67+
glob <>node = 10;
68+
glob <>walker = 30;
69+
70+
obj Foo {
71+
has <>type: str = "default";
72+
}
73+
74+
myobj = otherobj.<>walker.<>type;
75+
```
76+
77+
**After:**
78+
79+
```jac
80+
glob `node = 10;
81+
glob `walker = 30;
82+
83+
obj Foo {
84+
has `type: str = "default";
85+
}
86+
87+
myobj = otherobj.`walker.`type;
88+
```
89+
90+
**Note:** Builtin type names (`list`, `dict`, `set`, `tuple`, `any`, `type`, `bytes`, `int`, `float`, `str`, `bool`) do **not** need backtick escaping when used in expression contexts (function calls, type annotations, isinstance arguments). Backtick is only needed when using them as field, variable, or parameter names:
91+
92+
```jac
93+
# No backtick needed (expression context)
94+
x = list(items);
95+
y: tuple[(int, int)] = (1, 2);
96+
if isinstance(val, dict) { ... }
97+
98+
# Backtick needed (identifier context)
99+
has `type: str = "default";
100+
`bytes = read_data();
101+
```
102+
103+
**Migration:** Find and replace all `<>` keyword escape prefixes with `` ` `` in your `.jac` files.
104+
9105
### Backtick Type Operator Removed
10106

11107
The backtick (`` ` ``) type operator (`TYPE_OP`) and `TypeRef` AST node have been removed from the language. This affects two areas: walker event signatures and filter comprehensions.
@@ -170,7 +266,7 @@ walker AddTodo { has title: str; }
170266
```jac
171267
# main.cl.jac - auto-annexed to main.jac (no explicit import needed)
172268
cl {
173-
def:pub app -> any {
269+
def:pub app -> JsxElement {
174270
return <div>Hello World</div>;
175271
}
176272
}
@@ -188,15 +284,15 @@ walker AddTodo { has title: str; }
188284
cl {
189285
import from .frontend { app as ClientApp }
190286
191-
def:pub app -> any {
287+
def:pub app -> JsxElement {
192288
return <ClientApp />;
193289
}
194290
}
195291
```
196292

197293
```jac
198294
# frontend.cl.jac - standalone client module (renamed from main.cl.jac)
199-
def:pub app -> any {
295+
def:pub app -> JsxElement {
200296
return <div>Hello World</div>;
201297
}
202298
```
@@ -217,7 +313,7 @@ def:pub app -> any {
217313
cl {
218314
import from .frontend { app as ClientApp }
219315
220-
def:pub app -> any {
316+
def:pub app -> JsxElement {
221317
return <ClientApp />;
222318
}
223319
}
@@ -230,7 +326,7 @@ def:pub app -> any {
230326
walker AddTodo { has title: str; } # Stub for RPC calls
231327
walker ListTodos {}
232328
233-
def:pub app -> any { ... }
329+
def:pub app -> JsxElement { ... }
234330
```
235331

236332
**Note:** `.cl.jac` files can still have their own `.impl.jac` annexes for separating declarations from implementations.
@@ -495,22 +591,22 @@ The `check` keyword has been removed from Jaclang. All testing functionality is
495591
glob a: int = 5;
496592
glob b: int = 2;
497593
498-
test test_equality {
594+
test "equality" {
499595
check a == 5;
500596
check b == 2;
501597
}
502598
503-
test test_comparison {
599+
test "comparison" {
504600
check a > b;
505601
check a - b == 3;
506602
}
507603
508-
test test_membership {
604+
test "membership" {
509605
check "a" in "abc";
510606
check "d" not in "abc";
511607
}
512608
513-
test test_function_result {
609+
test "function result" {
514610
check almostEqual(a + b, 7);
515611
}
516612
```
@@ -521,22 +617,22 @@ test test_function_result {
521617
glob a: int = 5;
522618
glob b: int = 2;
523619
524-
test test_equality {
620+
test "equality" {
525621
assert a == 5;
526622
assert b == 2;
527623
}
528624
529-
test test_comparison {
625+
test "comparison" {
530626
assert a > b;
531627
assert a - b == 3;
532628
}
533629
534-
test test_membership {
630+
test "membership" {
535631
assert "a" in "abc";
536632
assert "d" not in "abc";
537633
}
538634
539-
test test_function_result {
635+
test "function result" {
540636
assert almostEqual(a + b, 7);
541637
}
542638
```

jac-gpt-fullstack/services/docs/community/internals/jsx_client_serv_design.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -607,7 +607,7 @@ HTML template (from [server.py:491-504](https://github.com/Jaseci-Labs/jaseci/bl
607607
<script id="__jac_init__" type="application/json">
608608
{"module":"myapp","function":"homepage","args":{},"globals":{},"argOrder":[]}
609609
</script>
610-
<script src="/static/client.js?hash=abc123..." defer></script>
610+
<script type="module" src="/static/client.js?hash=abc123..."></script>
611611
</body>
612612
</html>
613613
```

jac-gpt-fullstack/services/docs/community/release_notes/byllm.md

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,19 @@
22

33
This document provides a summary of new features, improvements, and bug fixes in each version of **byLLM** (formerly MTLLM). For details on changes that might require updates to your existing code, please refer to the [Breaking Changes](../breaking-changes.md) page.
44

5-
## byllm 0.4.18 (Unreleased)
5+
## byllm 0.4.20 (Unreleased)
66

7-
## byllm 0.4.17 (Latest Release)
7+
- Minor internal refactors
8+
9+
## byllm 0.4.19 (Latest Release)
10+
11+
- Various refactors
12+
- **Fix: `api_key` parameter no longer silently ignored**: The `api_key` passed via constructor, instance config, or global config (`jac.toml`) was being overwritten with `None` before every LLM call. The key is now properly resolved with a clear priority chain (constructor > instance config > global config > environment variables) and passed to LiteLLM, OpenAI client, and HTTP calls. API keys are also masked in verbose logs, showing only the last 4 characters.
13+
- **Fix: MTIR scope key mismatch between compile-time and runtime**: Fixed a bug where MTIR entries stored at compile-time could not be retrieved at runtime due to mismatched scope keys. At compile-time, the scope key was generated using the module's file path, while at runtime it used `__main__`. This caused `by llm()` calls to silently fall back to introspection mode, losing all `sem` string descriptions. The fix uses `sys.modules['__main__'].__file__` at runtime to get the entry point's file path, then extracts the file stem to match the compile-time scope key format.
14+
15+
## byllm 0.4.18
16+
17+
## byllm 0.4.17
818

919
- **Enum Semantic Strings in Schema**: Added support for extracting semantic strings from enum members at compile time. Enum member descriptions (e.g., `sem Personality.INTROVERT = "Person who is reserved..."`) are now included in LLM schemas, providing richer context for enum selection.
1020

jac-gpt-fullstack/services/docs/community/release_notes/jac-client.md

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,38 @@
22

33
This document provides a summary of new features, improvements, and bug fixes in each version of **Jac-Client**. For details on changes that might require updates to your existing code, please refer to the [Breaking Changes](../breaking-changes.md) page.
44

5-
## jac-client 0.2.16 (Unreleased)
5+
## jac-client 0.2.18 (Unreleased)
66

7+
- 2 Minor internal refactors
8+
9+
## jac-client 0.2.17 (Latest Release)
10+
11+
- **Structured Build Error Diagnostics**: Build errors now display formatted diagnostic output with error codes (JAC_CLIENT_XXX), source code snippets pointing to the error location, actionable hints, and quick fix commands. The diagnostic engine maps Vite/npm errors back to original `.jac` files, hiding internal JavaScript paths from developers. Detectors identify common issues: missing npm dependencies (JAC_CLIENT_001), syntax errors (JAC_CLIENT_003), and unresolved imports (JAC_CLIENT_004). Enable `debug = true` under `[plugins.client]` in `jac.toml` or set `JAC_DEBUG=1` to see raw error output alongside formatted diagnostics.
12+
13+
- Various refactors
14+
- **Improved `jac start` Output Ordering**: Fixed misleading output timing where "Server ready" and localhost URLs appeared before compilation completed. The Vite dev server now captures its initial output and waits for the ready signal before displaying status messages, ensuring users see compilation progress first and server URLs only when the server is actually ready to accept connections.
15+
- **PWA Target Support**: Added a new `pwa` target for creating Progressive Web Apps. Run `jac setup pwa` to configure your project with PWA support-this copies default icons to `pwa_icons/` and adds the `[plugins.client.pwa]` config section to `jac.toml`. Then use `jac build --client pwa` to build or `jac start --client pwa` to build and serve. The build generates a web bundle with `manifest.json`, a service worker (`sw.js`) for offline caching, and automatic HTML injection. The service worker implements cache-first for static assets and network-first for API calls (`/api/*`). Configure `theme_color`, `background_color`, `cache_name`, and custom `manifest` overrides in `[plugins.client.pwa]`.
16+
- **Code refactors**: Backtick escape, etc.
17+
- **Environment Variable Support**: Fixed `.env` file loading by configuring Vite's `envDir` to point to the project root instead of the build directory. Variables prefixed with `VITE_` in `.env` files are now properly loaded and available via `import.meta.env` in client code. Added `.env.example` template to the all-in-one example demonstrating standard environment variable patterns.
18+
- **Build-time Constants via jac.toml**: Added support for custom build-time constants through the `[plugins.client.vite.define]` configuration section. Define global variables that are replaced at build time, useful for feature flags, build timestamps, or configuration values. Example: `"globalThis.FEATURE_ENABLED" = true` in `jac.toml` makes `globalThis.FEATURE_ENABLED` available in client code. String values are automatically JSON-escaped to handle special characters safely.
19+
- Updated all-in-one example `jac.toml` to include `[plugins.scale.secrets]` test config.
20+
- **Improved API Error Handling**: Walker and function API calls now check `response.ok` and throw descriptive exceptions on HTTP errors. The `Authorization` header is only sent when a token is present, avoiding empty `Bearer` headers.
21+
- **Better Error Diagnostics**: Silent `except Exception {}` blocks in `jacLogin` and `__jacCallFunction` now log warnings via `console.warn` for easier debugging.
22+
- Docs update: return type `any` -> `JsxElement`
23+
24+
## jac-client 0.2.16
25+
26+
**Fix: ESM Script Loading**: Added `type="module"` to generated `<script>` tags in the client HTML output. The Vite bundler already produces ES module output, but the script tags were missing the module attribute, causing browsers to reject ESM syntax (e.g., `import`/`export`) from newer npm packages. Affects both the server-rendered page and the `jac build --target web` static output.
27+
28+
- **KWESC_NAME syntax changed from `<>` to backtick**: Updated keyword-escaped names from `<>` prefix to backtick prefix to match the jaclang grammar change.
729
- **Update syntax for TYPE_OP removal**: Replaced backtick type operator syntax (`` `root ``) with `Root` and filter syntax (`` (`?Type) ``) with `(?:Type)` across all examples, docs, tests, and templates.
830
- **Support custom Vite Configurations to `dev` mode**: Added support for custom Vite configuration from `jac.toml`.
931
- **Watchdog auto-install test**: Added test coverage for automatic watchdog installation in dev mode.
32+
- **Updated tests for CLI dependency command redesign**: New `jac add` behavior (errors on missing `jac.toml` instead of silently succeeding). Verify `jac add --npm` works in projects with both pypi and npm dependencies.
1033

11-
## jac-client 0.2.14 (Latest Release)
34+
## jac-client 0.2.14
1235

13-
## jac-client 0.2.15 (Latest Release)
36+
## jac-client 0.2.15
1437

1538
## jac-client 0.2.14
1639

jac-gpt-fullstack/services/docs/community/release_notes/jac-scale.md

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,34 @@
22

33
This document provides a summary of new features, improvements, and bug fixes in each version of **Jac-Scale**. For details on changes that might require updates to your existing code, please refer to the [Breaking Changes](../breaking-changes.md) page.
44

5-
## jac-scale 0.1.7 (Unreleased)
6-
5+
## jac-scale 0.1.9 (Unreleased)
6+
7+
- 1 Minor refactors/changes.
8+
9+
## jac-scale 0.1.8 (Latest Release)
10+
11+
- Internal: K8s integration tests now install jac plugins from fork PRs instead of always using main
12+
- **.jac folder is excluded when creating the zip folder that is uploaded into jaseci deployment pods.Fasten up deployment**
13+
- **Fix: `jac start` Startup Banner**: Server now displays the startup banner (URLs, network IPs, mode info) correctly via `on_ready` callback, consistent with stdlib server behavior.
14+
- Various refactors
15+
- **PWA Build Detection**: Server startup now detects existing PWA builds (via `manifest.json`) and skips redundant client bundling. The `/static/client.js` endpoint serves Vite-hashed files (`client.*.js`) in PWA mode.
16+
- **Prometheus Metrics Integration**: Added `/metrics` endpoint with HTTP request metrics, configurable via `[plugins.scale.metrics]` in `jac.toml`.
17+
- Update jaseci scale k8s pipeline to support parellel test cases.
18+
- **early exit from k8s deployment if container restarted**
19+
- **Direct Database Access (`kvstore`)**: Added `kvstore()` function for direct MongoDB and Redis operations without graph layer. Supports database-specific methods (MongoDB: `find_one`, `insert_one`, `update_one`; Redis: `set_with_ttl`, `incr`, `scan_keys`) with common methods (`get`, `set`, `delete`, `exists`) working across both. Import from `jac_scale.lib` with URI-based connection pooling and configuration fallback (explicit URI → env vars → jac.toml).
20+
- **Code refactors**: Backtick escape, etc.
21+
- **Native Kubernetes Secret support**: New `[plugins.scale.secrets]` config section. Declare secrets with `${ENV_VAR}` syntax, auto-resolved at deploy time into a K8s Secret with `envFrom.secretRef`.
22+
- **Minor Internal Refactor in Tests**: Minor internal refactoring in test_direct.py to improve test structure
23+
- **fix**: Return 401 instead of 500 for deleted users with valid JWT tokens.
24+
- Docs update: return type `any` -> `JsxElement`
25+
- **1 Small Refactors**
26+
27+
## jac-scale 0.1.7
28+
29+
- **KWESC_NAME syntax changed from `<>` to backtick**: Updated keyword-escaped names from `<>` prefix to backtick prefix to match the jaclang grammar change.
730
- **Update syntax for TYPE_OP removal**: Replaced backtick type operator syntax (`` `root ``) with `Root` and filter syntax (`` (`?Type) ``) with `(?:Type)` across all docs, tests, examples, and README.
831

9-
## jac-scale 0.1.6 (Latest Release)
32+
## jac-scale 0.1.6
1033

1134
- **WebSocket Support**: Added WebSocket transport for walkers via `@restspec(protocol=APIProtocol.WEBSOCKET)` with persistent bidirectional connections at `ws://host/ws/{walker_name}`. The `APIProtocol` enum (`HTTP`, `WEBHOOK`, `WEBSOCKET`) replaces the previous `webhook=True` flag-migrate by changing `@restspec(webhook=True)` to `@restspec(protocol=APIProtocol.WEBHOOK)`.
1235

@@ -94,12 +117,13 @@ First release of **Jac-Scale** - a scalable runtime framework for distributed Ja
94117

95118
### Key Features
96119

97-
- Distributed runtime with load balancing and service discovery
98-
- Intelligent walker scheduling across multiple nodes
99-
- Auto-partitioned graph storage
100-
- Performance monitoring and auto-scaling
101-
- YAML-based configuration
102-
- Username-based user management for authentication
120+
- Conversion of walker to fastapi endpoints
121+
- Multi memory hierachy implementation
122+
- Support for Mongodb (persistance storage) and Redis (cache storage) in k8s
123+
- Deployment of app code directly to k8s cluster
124+
- k8s support for local deployment and aws k8s deployment
125+
- SSO support for google
126+
103127
- **Custom Response Headers**: Configure custom HTTP response headers via `[environments.response.headers]` in `jac.toml`. Useful for security headers like COOP/COEP (required for `SharedArrayBuffer` support in libraries like monaco-editor).
104128

105129
### Installation

jac-gpt-fullstack/services/docs/community/release_notes/jac-super.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,17 @@
22

33
This document provides a summary of new features, improvements, and bug fixes in each version of **Jac-Super**. For details on changes that might require updates to your existing code, please refer to the [Breaking Changes](../breaking-changes.md) page.
44

5-
## jac-super 0.1.1 (Unreleased)
5+
## jac-super 0.1.3 (Unreleased)
66

7-
## jac-super 0.1.0 (Latest Release)
7+
## jac-super 0.1.2 (Latest Release)
8+
9+
- Various refactors
10+
11+
## jac-super 0.1.1
12+
13+
- **KWESC_NAME syntax changed from `<>` to backtick**: Updated keyword-escaped names from `<>` prefix to backtick prefix to match the jaclang grammar change.
14+
15+
## jac-super 0.1.0
816

917
- **Rich-Enhanced Console Output**: Introduced `jac-super` as a plugin that provides elegant, colorful terminal output for Jac CLI commands. The plugin overrides the base console implementation to add Rich-based formatting with:
1018
- **Themed Output**: Custom color themes for success (green), error (red), warning (yellow), and info (cyan) messages

0 commit comments

Comments
 (0)