@owlmeans/create-app 0.1.18-rc.65 → 0.1.18-rc.66
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 +1 -1
- package/build/consts.local.d.ts +1 -1
- package/build/consts.local.js +1 -1
- package/build/run.js +2 -2
- package/package.json +2 -2
- package/template/AGENTS.md +1 -1
- package/template/README.bare.md +1 -1
- package/template/_agents/skills/owlmeans-code-structure/SKILL.md +8 -2
- package/template/_agents/skills/owlmeans-code-structure/parts/code-structure-reference.md +125 -0
- package/template/_agents/skills/reuse-code/SKILL.md +1 -1
- package/template/_agents/skills/skill-authoring/SKILL.md +60 -8
- package/template/sources/api/package.json +4 -4
- package/template/sources/common/package.json +6 -6
- package/template/sources/web/package.json +12 -12
package/README.md
CHANGED
package/build/consts.local.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { PackageManager } from './types.js';
|
|
2
|
-
export declare const HELP = "@owlmeans/create-app \u2014 scaffold a fullstack OwlMeans Common app\n\nUsage:\n npm create @owlmeans/app@latest <dir> [options]\n bun create @owlmeans/app <dir> [options]\n yarn create @owlmeans/app <dir> [options]\n npx @owlmeans/create-app@^0.1.18-rc.
|
|
2
|
+
export declare const HELP = "@owlmeans/create-app \u2014 scaffold a fullstack OwlMeans Common app\n\nUsage:\n npm create @owlmeans/app@latest <dir> [options]\n bun create @owlmeans/app <dir> [options]\n yarn create @owlmeans/app <dir> [options]\n npx @owlmeans/create-app@^0.1.18-rc.66 <dir> [options]\n\nGenerates three workspaces (common + api + web) with shadcn UI navigation and\nlayout, no authentication, and a session-scoped in-memory resource on the\nbackend. With --bare the demo is left out and only the working shell remains.\nAgent skills are deployed into the project by default.\n\nOptions:\n --name <name> human-readable app name (default: derived from <dir>)\n --slug <slug> package slug (default: derived from <dir>)\n --lang <code> language of the generated UI text (default: en)\n --description <t> one-line project description for the generated docs\n --bare scaffold the shell only \u2014 no example/demo code\n --pm <bun|npm|yarn> package manager (default: bun)\n --no-install do not install dependencies\n --no-skills do not deploy agent skills via @owlmeans/agent-skills\n --no-git do not run \"git init\"\n --yes, -y proceed without prompts / into a non-empty directory\n --help, -h show this help\n";
|
|
3
3
|
export declare const PMS: PackageManager[];
|
|
4
4
|
/** Dotfiles/dirs are shipped with an underscore prefix so npm does not strip them from the tarball. */
|
|
5
5
|
export declare const DOTFILE_RENAMES: Record<string, string>;
|
package/build/consts.local.js
CHANGED
|
@@ -5,7 +5,7 @@ Usage:
|
|
|
5
5
|
npm create @owlmeans/app@latest <dir> [options]
|
|
6
6
|
bun create @owlmeans/app <dir> [options]
|
|
7
7
|
yarn create @owlmeans/app <dir> [options]
|
|
8
|
-
npx @owlmeans/create-app@^0.1.18-rc.
|
|
8
|
+
npx @owlmeans/create-app@^0.1.18-rc.66 <dir> [options]
|
|
9
9
|
|
|
10
10
|
Generates three workspaces (common + api + web) with shadcn UI navigation and
|
|
11
11
|
layout, no authentication, and a session-scoped in-memory resource on the
|
package/build/run.js
CHANGED
|
@@ -50,7 +50,7 @@ export const run = async (args) => {
|
|
|
50
50
|
log(args.install
|
|
51
51
|
? '\nDeploying agent skills via @owlmeans/agent-skills…'
|
|
52
52
|
: '\nDeploying harness guidance via @owlmeans/agent-skills (general skills only — re-run'
|
|
53
|
-
+ '\n`npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
53
|
+
+ '\n`npx @owlmeans/agent-skills@^0.1.18-rc.57` after installing to add the package-specific ones)…');
|
|
54
54
|
try {
|
|
55
55
|
const result = await installSkills({
|
|
56
56
|
dir: dest,
|
|
@@ -62,7 +62,7 @@ export const run = async (args) => {
|
|
|
62
62
|
help: false,
|
|
63
63
|
});
|
|
64
64
|
if (result.code !== 0) {
|
|
65
|
-
process.stderr.write(` agent-skills exited with code ${result.code} — you can re-run \`npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
65
|
+
process.stderr.write(` agent-skills exited with code ${result.code} — you can re-run \`npx @owlmeans/agent-skills@^0.1.18-rc.57\` later.\n`);
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
68
|
catch (err) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@owlmeans/create-app",
|
|
3
|
-
"version": "0.1.18-rc.
|
|
3
|
+
"version": "0.1.18-rc.66",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "Scaffold a fullstack OwlMeans Common app — common + api + web workspaces, shadcn UI navigation/layout, no auth, and a session-scoped in-memory resource, or --bare for the demo-free shell. Also usable programmatically via scaffold(). Deploys agent skills via @owlmeans/agent-skills by default.",
|
|
6
6
|
"type": "module",
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
"THIRD-PARTY-NOTICES.txt"
|
|
32
32
|
],
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@owlmeans/agent-skills": "^0.1.18-rc.
|
|
34
|
+
"@owlmeans/agent-skills": "^0.1.18-rc.57"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@owlmeans/dep-config": "workspace:*",
|
package/template/AGENTS.md
CHANGED
|
@@ -114,7 +114,7 @@ from the installed `@owlmeans/*` packages. Agents load a skill by topic, or you
|
|
|
114
114
|
explicitly. Copilot and Codex read `.agents/skills/` directly; Claude Code reads the generated
|
|
115
115
|
symlinks in `.claude/skills/` (see "Claude Code" below).
|
|
116
116
|
|
|
117
|
-
- After adding or updating any `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
117
|
+
- After adding or updating any `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.57` to refresh
|
|
118
118
|
the deployed skills.
|
|
119
119
|
- `/logging` — before adding any log line, catch block or `console` call (mechanics: `/log`).
|
|
120
120
|
- Deployed files carry an `AUTO-GENERATED` banner and are refreshed in place — never hand-edit them.
|
package/template/README.bare.md
CHANGED
|
@@ -178,5 +178,11 @@ Then read the diff once for what no grep sees: a second exported function of one
|
|
|
178
178
|
that takes the same first argument as its siblings, a private helper exposed on the interface, a
|
|
179
179
|
bound object built in a loop, a barrel re-exporting a `.local` file.
|
|
180
180
|
|
|
181
|
-
Classification details, folder decisions and the pitfalls of moving code into closures:
|
|
182
|
-
|
|
181
|
+
Classification details, folder decisions and the pitfalls of moving code into closures: the
|
|
182
|
+
`code-structure-reference` part ([parts/code-structure-reference.md](parts/code-structure-reference.md)).
|
|
183
|
+
|
|
184
|
+
## Parts
|
|
185
|
+
|
|
186
|
+
| Part | Load it when |
|
|
187
|
+
|---|---|
|
|
188
|
+
| [code-structure-reference](parts/code-structure-reference.md) | classifying a declaration, deciding a folder, converting a module, or moving code into closures |
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: code-structure-reference
|
|
3
|
+
description: Classifying a declaration, file roles, deciding a module's shape, converting a module step by step, choosing the binding target, interface conversions, and pitfalls.
|
|
4
|
+
metadata:
|
|
5
|
+
purposes:
|
|
6
|
+
mentions:
|
|
7
|
+
---
|
|
8
|
+
<!-- AUTO-GENERATED — do not edit. Regenerate via sync-agent-meta. -->
|
|
9
|
+
|
|
10
|
+
# owlmeans-code-structure — reference
|
|
11
|
+
|
|
12
|
+
## Contents
|
|
13
|
+
- Classifying a declaration
|
|
14
|
+
- File roles
|
|
15
|
+
- Deciding the shape of a module
|
|
16
|
+
- Converting a module, step by step
|
|
17
|
+
- Binding: choosing the target
|
|
18
|
+
- Interfaces over types: the conversions
|
|
19
|
+
- Pitfalls
|
|
20
|
+
|
|
21
|
+
## Classifying a declaration
|
|
22
|
+
|
|
23
|
+
| Kind | What it is | Goes to |
|
|
24
|
+
|---|---|---|
|
|
25
|
+
| type | `interface`, `type` alias, `declare const x: unique symbol` brand | `types.ts` / `types.local.ts` |
|
|
26
|
+
| constant | an enum, or a `const` whose initializer is a literal, an object/array of constants, a template over constants, `Object.freeze`/`as const`/`satisfies` of those, `new Set/Map/RegExp` over constants, or `.map/.filter/.concat` over constants | `consts.ts` / `consts.local.ts` |
|
|
27
|
+
| state | `let`/`var`, a cache, a registry, a holder (`new Map()`, `[]`, `{}` that is filled later) | stays with the code that owns it, inside its factory when per-instance, module level when process-wide |
|
|
28
|
+
| instance | a value built by a factory (`createPathResolver(DEFAULT_TOPOLOGY)`) | the factory's file, as its ready instance |
|
|
29
|
+
| code | functions, classes, side-effect statements | code files, inside a factory |
|
|
30
|
+
|
|
31
|
+
A constant computed by calling project code is either rewritten as a constant expression (a
|
|
32
|
+
template over constants instead of `srcOf(...)`) or is an instance.
|
|
33
|
+
|
|
34
|
+
## File roles
|
|
35
|
+
|
|
36
|
+
| File | Holds |
|
|
37
|
+
|---|---|
|
|
38
|
+
| `x.ts` | one factory (plus its ready instance), or one exempt export (a component, a hook, one handler) |
|
|
39
|
+
| `x/types.ts` | `x`'s interface and the types only `x` owns |
|
|
40
|
+
| `x/consts.ts`, `x/*.local.ts` | its constants; its package-private declarations |
|
|
41
|
+
| `x/<sub>.ts` | a sub-helper only `x` uses — itself a factory, with its own folder when it has parts |
|
|
42
|
+
| `<dir>/types.ts` | declarations two or more objects of the directory share, or a small single-owner directory |
|
|
43
|
+
| `index.ts` | re-exports only: `export type * from './x/types.js'`, `export * from './x.js'`; never a `.local` file, never an enum through `export type *` |
|
|
44
|
+
| `errors.ts`, `schemas.ts` | error classes; JSON schemas and the code that builds them |
|
|
45
|
+
|
|
46
|
+
A types file imports only types files, consts files and external packages — never a code file.
|
|
47
|
+
|
|
48
|
+
## Deciding the shape of a module
|
|
49
|
+
|
|
50
|
+
1. List what other files use from it. Everything else becomes private.
|
|
51
|
+
2. Group what is used by domain. One group = one object; a second group = a second file.
|
|
52
|
+
3. Look at the first parameters. A shared context, request, collaborator or record moves into the
|
|
53
|
+
factory (see *Binding*). Members that take different first arguments may mean two objects.
|
|
54
|
+
4. A group whose members all read one record is a model; one that lives in a context with a
|
|
55
|
+
lifecycle is a service; one that reads and writes a store is a resource; the rest are helpers
|
|
56
|
+
(reusable) or utils (package-internal).
|
|
57
|
+
5. Name it by the kind: `createXxxHelper` / `makeXxxHelper`, `createXxxUtils`, `createXxxService`,
|
|
58
|
+
`makeXxxModel`, `makeXxxResource`.
|
|
59
|
+
|
|
60
|
+
## Converting a module, step by step
|
|
61
|
+
|
|
62
|
+
1. Write `x/types.ts`: the interface, one member per public function, with explicit parameter and
|
|
63
|
+
return types and the JSDoc moved from the functions.
|
|
64
|
+
2. Rewrite `x.ts`: `export const createX = (deps): X => { … return { … } }`, with every function of
|
|
65
|
+
the group and every helper only they use inside the closure, in their original order.
|
|
66
|
+
3. Drop the bound parameter from the members and from the calls between them.
|
|
67
|
+
4. Move constants and types the module still declares to `x/consts.ts` and `x/types.ts`.
|
|
68
|
+
5. Update every caller: `fn(ctx, a)` → `xOf(ctx).fn(a)`, `fn(a)` → `xHelper.fn(a)`, hoisting a
|
|
69
|
+
repeated `xOf(ctx)` to one local per function.
|
|
70
|
+
6. Build from clean (delete `build/` and `*.tsbuildinfo`), run the package's tests, and grep the
|
|
71
|
+
tests that read source as text (`readFileSync` of a `.ts`) for the moved names.
|
|
72
|
+
|
|
73
|
+
A published package that removes an export keeps a deprecated delegate at the end of the module
|
|
74
|
+
that exported it (`/** @deprecated compat:factory-refactor use xOf(ctx).fn() */`) until its version
|
|
75
|
+
line changes — never gathered into one `compat.ts`, because a subpath export (`pkg/login`) resolves
|
|
76
|
+
that module, not the package root. No code in the OwlMeans repositories may import it; a private
|
|
77
|
+
package drops its delegates once nothing imports them.
|
|
78
|
+
|
|
79
|
+
## Binding: choosing the target
|
|
80
|
+
|
|
81
|
+
- **A service** when the object has a lifecycle (init, connections), holds state shared by the
|
|
82
|
+
process, or must be replaceable by an application.
|
|
83
|
+
- **A context accessor** when an application owns its context type: declare `xxx: () => XxxHelper` on
|
|
84
|
+
the context interface and install it in the context factory with `memoHelper.once`.
|
|
85
|
+
- **`oncePer`** inside a library, where the helper must not appear on the public context type:
|
|
86
|
+
`export const xxxOf = memoHelper.oncePer(makeXxx)`.
|
|
87
|
+
- **A request scope** for what depends on the caller (actor, organization, channel): build it once at
|
|
88
|
+
the top of the handler and pass it down; never store it.
|
|
89
|
+
- **A collaborator accessor** when a helper always works over one FileHelper, stage or deps bag.
|
|
90
|
+
- **A model** when every member reads the same record.
|
|
91
|
+
|
|
92
|
+
Construction must stay cheap: no I/O and no awaits in a factory body; tables a member needs are built
|
|
93
|
+
lazily with `memoHelper.once`.
|
|
94
|
+
|
|
95
|
+
## Interfaces over types: the conversions
|
|
96
|
+
|
|
97
|
+
| From | To |
|
|
98
|
+
|---|---|
|
|
99
|
+
| `type X = { a: A }` | `interface X { a: A }` |
|
|
100
|
+
| `type X = A & { b: B }` | `interface X extends A { b: B }` |
|
|
101
|
+
| `type X = Omit<A, 'k'> & { k: K }` | `interface X extends Omit<A, 'k'> { k: K }` |
|
|
102
|
+
| `type X = Partial<Pick<A, 'a' \| 'b'>>` | `interface X extends Partial<Pick<A, 'a' \| 'b'>> {}` |
|
|
103
|
+
| `type F = (a: A) => R` | `interface F { (a: A): R }` |
|
|
104
|
+
| `type F = <T>(a: T) => R<T>` | `interface F { <T>(a: T): R<T> }` |
|
|
105
|
+
|
|
106
|
+
Keep the alias, with a one-line reason, where the interface breaks the program: it is used where an
|
|
107
|
+
implicit index signature is required, its `extends` parts conflict, or a declaration of the same name
|
|
108
|
+
would merge with it.
|
|
109
|
+
|
|
110
|
+
## Pitfalls
|
|
111
|
+
|
|
112
|
+
- **Read before initialization.** A factory body runs when called; a ready instance runs at import.
|
|
113
|
+
Keep the instance the file's last statement, and never let a module-level constant call a factory
|
|
114
|
+
of the same import cycle.
|
|
115
|
+
- **Import cycles.** Bound objects import types, constants and pure helpers only; composition roots
|
|
116
|
+
(context factories) import the factories. Reach another bound object through the binding target.
|
|
117
|
+
- **Declaration emit.** A private type that appears in a public signature must move to `types.ts`;
|
|
118
|
+
an inferred return type that names an unexported type fails the build (`TS4023`, `TS2742`).
|
|
119
|
+
- **State moved into a closure** becomes per instance. Process-wide state (a queue, a merge chain, a
|
|
120
|
+
cache every caller must share) stays at module level or in a per-context memo.
|
|
121
|
+
- **Inheritance by prototype.** A helper derived with `Object.create(base)` inherits accessors bound to
|
|
122
|
+
`base`; build an accessor over the derived object when its calls must go through it.
|
|
123
|
+
- **Enums** never move into types files and never pass through `export type *`.
|
|
124
|
+
- **Same name from two modules** in one barrel fails with `TS2308`; rename or re-export explicitly.
|
|
125
|
+
- **Tests that read source text** break silently when code moves; grep them in the same change.
|
|
@@ -47,7 +47,7 @@ How you research the repo depends on whether `@owlmeans/*` is linked locally:
|
|
|
47
47
|
**https://github.com/owlmeans/common** — `tree.md` and package READMEs — to find the right package.
|
|
48
48
|
|
|
49
49
|
This is the same dev-linked detection `@owlmeans/agent-skills` uses (see its `detectLinked`). After
|
|
50
|
-
adding an `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.
|
|
50
|
+
adding an `@owlmeans/*` dependency, run `npx @owlmeans/agent-skills@^0.1.18-rc.57` to deploy its
|
|
51
51
|
skill. Prefer an `@owlmeans/*` package over a third-party library or bespoke code whenever one fits.
|
|
52
52
|
|
|
53
53
|
### Never add an OwlMeans dependency without an explicit range
|
|
@@ -39,8 +39,8 @@ once; never author a per-agent copy** (`.github/instructions/*.instructions.md`,
|
|
|
39
39
|
|
|
40
40
|
```
|
|
41
41
|
.agents/skills/<name>/
|
|
42
|
-
├── SKILL.md # required — frontmatter + body
|
|
43
|
-
├──
|
|
42
|
+
├── SKILL.md # required — frontmatter + body (a package skill's core)
|
|
43
|
+
├── parts/<part>.md # optional — a package skill's purpose parts, loaded on demand
|
|
44
44
|
└── scripts/ # optional — shell scripts the skill runs
|
|
45
45
|
```
|
|
46
46
|
|
|
@@ -80,15 +80,67 @@ or the file stops parsing and the skill silently disappears from every agent.
|
|
|
80
80
|
plain spaces. `Bash(bun *) Read` is read as one tool named `Bash(bun *) Read`, which matches
|
|
81
81
|
nothing; write `Bash(bun *), Read`.
|
|
82
82
|
|
|
83
|
-
Six keys are what the Agent Skills
|
|
84
|
-
`
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
83
|
+
Six keys are what the Agent Skills standard defines: `name`, `description`, `license`,
|
|
84
|
+
`compatibility`, `allowed-tools` and nested `metadata`. `@owlmeans/agent-skills` parses no
|
|
85
|
+
frontmatter; the generator that embeds package guidance reads it. Project-specific keys —
|
|
86
|
+
including the OwlMeans `scope: general` routing marker, which sends a skill to the installer bundle
|
|
87
|
+
rather than to one package — belong under `metadata:`, so a skill stays valid in every agent that
|
|
88
|
+
reads it. The invocation switches sit outside the standard and are written at the top level
|
|
89
|
+
alongside it: `user-invocable` (`false` hides a skill from the `/`
|
|
89
90
|
menu, marking it background knowledge), plus `disable-model-invocation` and `argument-hint`, which
|
|
90
91
|
Claude Code understands. Set any of them only when the skill needs it.
|
|
91
92
|
|
|
93
|
+
## Chunked package skills (parts)
|
|
94
|
+
|
|
95
|
+
A package skill that grows past what one call should carry is split. `SKILL.md` stays the
|
|
96
|
+
**core**, loaded whenever the package is chosen; each `parts/<part>.md` holds ONE purpose, loaded
|
|
97
|
+
only for a call that needs it (selection: the `agent-skills` skill).
|
|
98
|
+
|
|
99
|
+
- **The core** keeps the frontmatter, the `**Install:**` line, the exports, the wiring, any
|
|
100
|
+
`## Target wiring` section (an adoption reads it from the core alone) and the rules every use
|
|
101
|
+
needs. Target ≤ 12 000 chars. It ENDS with a Parts table linking every part:
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
## Parts
|
|
105
|
+
|
|
106
|
+
| Part | Load it when |
|
|
107
|
+
|---|---|
|
|
108
|
+
| [navigation](parts/navigation.md) | building the application shell or its menus |
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
- **A part** opens with exactly this frontmatter, then `# @owlmeans/<package> — <part title>` and
|
|
112
|
+
the moved sections:
|
|
113
|
+
|
|
114
|
+
```yaml
|
|
115
|
+
---
|
|
116
|
+
name: navigation # = the file stem, [a-z0-9-], unique within the package
|
|
117
|
+
description: The application shell — NavLayout, TopNav/SideNav/MobileNav/Footer, the nav config.
|
|
118
|
+
metadata:
|
|
119
|
+
purposes: navigation, layout, screen # closed vocabulary, comma-separated
|
|
120
|
+
mentions: NavLayout, TopNav, SideNav # symbols and import specifiers that call for it
|
|
121
|
+
---
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
- **Size:** the generator warns above 12 000 chars per part and fails above 16 000; it also warns
|
|
125
|
+
about a package-specific skill over 16 000 chars that has no parts.
|
|
126
|
+
- **Purposes** come from a closed vocabulary (`PACKAGE_PURPOSES`, `@owlmeans/llm-common`):
|
|
127
|
+
`view`, `form`, `list`, `detail`, `dialog`, `picker`, `navigation`, `layout`, `screen`,
|
|
128
|
+
`theme`, `feedback`, `state`, `client-api`, `server-api`, `data`, `migration`, `query`, `auth`,
|
|
129
|
+
`consent`, `payment`, `planning`, `job`, `agent`, `config`, `test`, `ops`.
|
|
130
|
+
A value outside it fails the generator. Purposes may stay empty only in a general skill.
|
|
131
|
+
- **Mentions** are distinctive symbols or import specifiers, never common words: a call without a
|
|
132
|
+
focus loads every part whose mention appears in its messages.
|
|
133
|
+
- **Names are unique per package** — a part is addressed as `@owlmeans/<package>#<part>`. Every
|
|
134
|
+
general skill routes to the installer package, so a general skill's part carries the skill's own
|
|
135
|
+
prefix (`code-structure-reference`, never `reference`).
|
|
136
|
+
- **YAML:** a value that starts with `@`, a backtick, `[`, `{`, `*` or `&`, or that contains `: `
|
|
137
|
+
or ` #`, stops parsing — start the mentions with a symbol, not an import specifier.
|
|
138
|
+
- **Splitting moves text, never rewrites it.** Every section lands in the core or in exactly one
|
|
139
|
+
part, each part stands alone for its purpose, and a reference to a moved section names its part
|
|
140
|
+
(see "Organizations" in the `sessions` part).
|
|
141
|
+
- Only `SKILL.md` and `parts/*.md` are embedded into a package; any other file beside them stays in
|
|
142
|
+
the repository, and the generator warns about a root `reference.md`.
|
|
143
|
+
|
|
92
144
|
## Refresh the Claude Code links
|
|
93
145
|
|
|
94
146
|
After creating, renaming, or deleting a skill, run:
|
|
@@ -11,13 +11,13 @@
|
|
|
11
11
|
"typecheck": "tsc -b"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@owlmeans/log": "^0.1.18-rc.
|
|
15
|
-
"@owlmeans/server-app": "^0.1.18-rc.
|
|
16
|
-
"@owlmeans/static-resource": "^0.1.18-rc.
|
|
14
|
+
"@owlmeans/log": "^0.1.18-rc.4",
|
|
15
|
+
"@owlmeans/server-app": "^0.1.18-rc.58",
|
|
16
|
+
"@owlmeans/static-resource": "^0.1.18-rc.40",
|
|
17
17
|
"__APP_SLUG__-common": "workspace:^"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
|
-
"@owlmeans/dep-config": "^0.1.18-rc.
|
|
20
|
+
"@owlmeans/dep-config": "^0.1.18-rc.8",
|
|
21
21
|
"@types/node": "^26.6.4",
|
|
22
22
|
"typescript": "^7.0.2"
|
|
23
23
|
}
|
|
@@ -19,15 +19,15 @@
|
|
|
19
19
|
"typecheck": "tsc -b"
|
|
20
20
|
},
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@owlmeans/config": "^0.1.18-rc.
|
|
23
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
24
|
-
"@owlmeans/error": "^0.1.18-rc.
|
|
25
|
-
"@owlmeans/resource": "^0.1.18-rc.
|
|
26
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
22
|
+
"@owlmeans/config": "^0.1.18-rc.45",
|
|
23
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.42",
|
|
24
|
+
"@owlmeans/error": "^0.1.18-rc.39",
|
|
25
|
+
"@owlmeans/resource": "^0.1.18-rc.41",
|
|
26
|
+
"@owlmeans/route": "^0.1.18-rc.36",
|
|
27
27
|
"ajv": "^8.20.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@owlmeans/dep-config": "^0.1.18-rc.
|
|
30
|
+
"@owlmeans/dep-config": "^0.1.18-rc.8",
|
|
31
31
|
"@types/node": "^26.6.4",
|
|
32
32
|
"typescript": "^7.0.2"
|
|
33
33
|
}
|
|
@@ -11,17 +11,17 @@
|
|
|
11
11
|
"preview": "vite preview"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"@owlmeans/client": "^0.1.18-rc.
|
|
15
|
-
"@owlmeans/client-config": "^0.1.18-rc.
|
|
16
|
-
"@owlmeans/client-context": "^0.1.18-rc.
|
|
17
|
-
"@owlmeans/client-entrypoint": "^0.1.18-rc.
|
|
18
|
-
"@owlmeans/client-i18n": "^0.1.18-rc.
|
|
19
|
-
"@owlmeans/entrypoint": "^0.1.18-rc.
|
|
20
|
-
"@owlmeans/log": "^0.1.18-rc.
|
|
21
|
-
"@owlmeans/route": "^0.1.18-rc.
|
|
22
|
-
"@owlmeans/state": "^0.1.18-rc.
|
|
23
|
-
"@owlmeans/web-client": "^0.1.18-rc.
|
|
24
|
-
"@owlmeans/web-panel": "^0.1.18-rc.
|
|
14
|
+
"@owlmeans/client": "^0.1.18-rc.57",
|
|
15
|
+
"@owlmeans/client-config": "^0.1.18-rc.46",
|
|
16
|
+
"@owlmeans/client-context": "^0.1.18-rc.53",
|
|
17
|
+
"@owlmeans/client-entrypoint": "^0.1.18-rc.52",
|
|
18
|
+
"@owlmeans/client-i18n": "^0.1.18-rc.56",
|
|
19
|
+
"@owlmeans/entrypoint": "^0.1.18-rc.42",
|
|
20
|
+
"@owlmeans/log": "^0.1.18-rc.4",
|
|
21
|
+
"@owlmeans/route": "^0.1.18-rc.36",
|
|
22
|
+
"@owlmeans/state": "^0.1.18-rc.40",
|
|
23
|
+
"@owlmeans/web-client": "^0.1.18-rc.68",
|
|
24
|
+
"@owlmeans/web-panel": "^0.1.18-rc.79",
|
|
25
25
|
"@radix-ui/react-dropdown-menu": "^2.1.24",
|
|
26
26
|
"@radix-ui/react-label": "^2.1.15",
|
|
27
27
|
"@radix-ui/react-navigation-menu": "^1.2.22",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"tailwindcss": "^4.3.3"
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
|
-
"@owlmeans/dep-config": "^0.1.18-rc.
|
|
44
|
+
"@owlmeans/dep-config": "^0.1.18-rc.8",
|
|
45
45
|
"@tailwindcss/vite": "^4.3.3",
|
|
46
46
|
"@types/react": "^19.3.0",
|
|
47
47
|
"@types/react-dom": "^19.3.0",
|