Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,4 @@ build/linux/appimage/build
build/windows/nsis/MicrosoftEdgeWebview2Setup.exeide
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix the malformed ignore pattern.

Line 7 ends with exeide instead of .exe, which appears to be a concatenation error. This malformed pattern prevents the executable from being properly ignored by Git. Please correct it to end with .exe:

🐛 Proposed fix for the malformed pattern
-build/windows/nsis/MicrosoftEdgeWebview2Setup.exeide
+build/windows/nsis/MicrosoftEdgeWebview2Setup.exe
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
build/windows/nsis/MicrosoftEdgeWebview2Setup.exeide
build/windows/nsis/MicrosoftEdgeWebview2Setup.exe
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore at line 7, The ignore pattern
"build/windows/nsis/MicrosoftEdgeWebview2Setup.exeide" is malformed; replace
that string with "build/windows/nsis/MicrosoftEdgeWebview2Setup.exe" so the
WebView2 installer executable is properly ignored by Git—locate the bad pattern
in the .gitignore and correct the trailing "exeide" to ".exe".

.core/
.idea/
ide
2 changes: 1 addition & 1 deletion build/Taskfile.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ tasks:
deps:
- task: install:frontend:deps
cmds:
- npm run dev -- --port {{.VITE_PORT}} --strictPort
- npm run dev -- --port {{.VITE_PORT}}

update:build-assets:
summary: Updates the build assets
Expand Down
Binary file added build/darwin/Assets.car
Binary file not shown.
Binary file modified build/darwin/icons.icns
Binary file not shown.
3 changes: 3 additions & 0 deletions frontend/angular.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,5 +94,8 @@
}
}
}
},
"cli": {
"analytics": false
}
}
10 changes: 0 additions & 10 deletions frontend/bindings/changeme/greetservice.ts

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

import * as GreetService from "./greetservice.js";
export {
GreetService
};
FS
} from "./models.js";
35 changes: 35 additions & 0 deletions frontend/bindings/embed/models.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "@wailsio/runtime";

/**
* An FS is a read-only collection of files, usually initialized with a //go:embed directive.
* When declared without a //go:embed directive, an FS is an empty file system.
*
* An FS is a read-only value, so it is safe to use from multiple goroutines
* simultaneously and also safe to assign values of type FS to each other.
*
* FS implements fs.FS, so it can be used with any package that understands
* file system interfaces, including net/http, text/template, and html/template.
*
* See the package documentation for more details about initializing an FS.
*/
export class FS {

/** Creates a new FS instance. */
constructor($$source: Partial<FS> = {}) {

Object.assign(this, $$source);
}

/**
* Creates a new FS instance from a string or object.
*/
static createFrom($$source: any = {}): FS {
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
return new FS($$parsedSource as Partial<FS>);
}
}
164 changes: 164 additions & 0 deletions frontend/bindings/forge.lthn.ai/core/go/pkg/core/core.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

/**
* Core is the central application object that manages services, assets, and communication.
* @module
*/

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Call as $Call, CancellablePromise as $CancellablePromise, Create as $Create } from "@wailsio/runtime";

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as embed$0 from "../../../../../embed/models.js";

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import * as $models from "./models.js";

/**
* ACTION dispatches a message to all registered IPC handlers.
* This is the primary mechanism for services to communicate with each other.
*/
export function ACTION(msg: $models.Message): $CancellablePromise<void> {
return $Call.ByID(4292948361, msg);
}

/**
* Assets returns the embedded filesystem containing the application's assets.
*/
export function Assets(): $CancellablePromise<embed$0.FS> {
return $Call.ByID(3418392250).then(($result: any) => {
return $$createType0($result);
});
}

/**
* Config returns the registered Config service.
*/
export function Config(): $CancellablePromise<$models.Config> {
return $Call.ByID(189298201);
}

/**
* Core returns self, implementing the CoreProvider interface.
*/
export function Core(): $CancellablePromise<$models.Core | null> {
return $Call.ByID(1780022976).then(($result: any) => {
return $$createType2($result);
});
}

/**
* Crypt returns the registered Crypt service.
*/
export function Crypt(): $CancellablePromise<$models.Crypt> {
return $Call.ByID(2268164577);
}

/**
* Display returns the registered Display service.
*/
export function Display(): $CancellablePromise<$models.Display> {
return $Call.ByID(2677615899);
}

/**
* PERFORM dispatches a task to handlers until one executes it.
* Returns (result, handled, error). If no handler responds, handled is false.
*/
export function PERFORM(t: $models.Task): $CancellablePromise<[any, boolean]> {
return $Call.ByID(4123176972, t);
}

/**
* PerformAsync dispatches a task to be executed in a background goroutine.
* It returns a unique task ID that can be used to track the task's progress.
* The result of the task will be broadcasted via an ActionTaskCompleted message.
*/
export function PerformAsync(t: $models.Task): $CancellablePromise<string> {
return $Call.ByID(2093358608, t);
}

/**
* Progress broadcasts a progress update for a background task.
*/
export function Progress(taskID: string, progress: number, message: string, t: $models.Task): $CancellablePromise<void> {
return $Call.ByID(1583922996, taskID, progress, message, t);
}

/**
* QUERY dispatches a query to handlers until one responds.
* Returns (result, handled, error). If no handler responds, handled is false.
*/
export function QUERY(q: $models.Query): $CancellablePromise<[any, boolean]> {
return $Call.ByID(3538289785, q);
}

/**
* QUERYALL dispatches a query to all handlers and collects all responses.
* Returns all results from handlers that responded.
*/
export function QUERYALL(q: $models.Query): $CancellablePromise<any[]> {
return $Call.ByID(2503646560, q).then(($result: any) => {
return $$createType3($result);
});
}

/**
* RegisterAction adds a new IPC handler to the Core.
*/
export function RegisterAction(handler: any): $CancellablePromise<void> {
return $Call.ByID(4133311524, handler);
}

/**
* RegisterActions adds multiple IPC handlers to the Core.
*/
export function RegisterActions(...handlers: any[]): $CancellablePromise<void> {
return $Call.ByID(736871669, handlers);
}

/**
* RegisterQuery adds a query handler to the Core.
*/
export function RegisterQuery(handler: $models.QueryHandler): $CancellablePromise<void> {
return $Call.ByID(3624744914, handler);
}

/**
* RegisterService adds a new service to the Core.
*/
export function RegisterService(name: string, api: any): $CancellablePromise<void> {
return $Call.ByID(984069509, name, api);
}

/**
* RegisterTask adds a task handler to the Core.
*/
export function RegisterTask(handler: $models.TaskHandler): $CancellablePromise<void> {
return $Call.ByID(2729221523, handler);
}

/**
* Service retrieves a registered service by name.
* It returns nil if the service is not found.
*/
export function Service(name: string): $CancellablePromise<any> {
return $Call.ByID(3781502542, name);
}

/**
* Workspace returns the registered Workspace service.
*/
export function Workspace(): $CancellablePromise<$models.Workspace> {
return $Call.ByID(3152134880);
}

// Private type creation functions
const $$createType0 = embed$0.FS.createFrom;
const $$createType1 = $models.Core.createFrom;
const $$createType2 = $Create.Nullable($$createType1);
const $$createType3 = $Create.Array($Create.Any);
24 changes: 24 additions & 0 deletions frontend/bindings/forge.lthn.ai/core/go/pkg/core/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

import * as Core from "./core.js";
export {
Core
};

export {
Core,
Features
} from "./models.js";

export type {
Config,
Crypt,
Display,
Message,
Query,
QueryHandler,
Task,
TaskHandler,
Workspace
} from "./models.js";
129 changes: 129 additions & 0 deletions frontend/bindings/forge.lthn.ai/core/go/pkg/core/models.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,129 @@
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT

// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore: Unused imports
import { Create as $Create } from "@wailsio/runtime";

/**
* Config provides access to application configuration.
*/
export type Config = any;

/**
* Core is the central application object that manages services, assets, and communication.
*/
export class Core {
/**
* GUI runtime (e.g., Wails App) - set by WithApp option
*/
"App": any;
"Features": Features | null;

/** Creates a new Core instance. */
constructor($$source: Partial<Core> = {}) {
if (!("App" in $$source)) {
this["App"] = null;
}
if (!("Features" in $$source)) {
this["Features"] = null;
}

Object.assign(this, $$source);
}

/**
* Creates a new Core instance from a string or object.
*/
static createFrom($$source: any = {}): Core {
const $$createField1_0 = $$createType1;
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
if ("Features" in $$parsedSource) {
$$parsedSource["Features"] = $$createField1_0($$parsedSource["Features"]);
}
return new Core($$parsedSource as Partial<Core>);
}
}

/**
* Crypt provides PGP-based encryption, signing, and key management.
*/
export type Crypt = any;

/**
* Display provides access to windowing and visual elements.
*/
export type Display = any;

/**
* Features provides a way to check if a feature is enabled.
* This is used for feature flagging and conditional logic.
*/
export class Features {
/**
* Flags is a list of enabled feature flags.
*/
"Flags": string[];

/** Creates a new Features instance. */
constructor($$source: Partial<Features> = {}) {
if (!("Flags" in $$source)) {
this["Flags"] = [];
}

Object.assign(this, $$source);
}

/**
* Creates a new Features instance from a string or object.
*/
static createFrom($$source: any = {}): Features {
const $$createField0_0 = $$createType2;
let $$parsedSource = typeof $$source === 'string' ? JSON.parse($$source) : $$source;
if ("Flags" in $$parsedSource) {
$$parsedSource["Flags"] = $$createField0_0($$parsedSource["Flags"]);
}
return new Features($$parsedSource as Partial<Features>);
}
}

/**
* Message is the interface for all messages that can be sent through the Core's IPC system.
* Any struct can be a message, allowing for structured data to be passed between services.
* Used with ACTION for fire-and-forget broadcasts.
*/
export type Message = any;

/**
* Query is the interface for read-only requests that return data.
* Used with QUERY (first responder) or QUERYALL (all responders).
*/
export type Query = any;

/**
* QueryHandler handles Query requests. Returns (result, handled, error).
* If handled is false, the query will be passed to the next handler.
*/
export type QueryHandler = any;

/**
* Task is the interface for requests that perform side effects.
* Used with PERFORM (first responder executes).
*/
export type Task = any;

/**
* TaskHandler handles Task requests. Returns (result, handled, error).
* If handled is false, the task will be passed to the next handler.
*/
export type TaskHandler = any;

/**
* Workspace provides management for encrypted user workspaces.
*/
export type Workspace = any;

// Private type creation functions
const $$createType0 = Features.createFrom;
const $$createType1 = $Create.Nullable($$createType0);
const $$createType2 = $Create.Array($Create.Any);
Loading