@akanjs/cli 3.1.0-rc.23 → 3.1.0-rc.25

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.
Files changed (69) hide show
  1. package/.build-stamp +1 -1
  2. package/{CodeAgent-fee0pnwp.js → CodeAgent-qrhqfc5s.js} +2 -2
  3. package/{CodeTui-xh71b2k8.js → CodeTui-k2c7wzhf.js} +1 -1
  4. package/README.ko.md +1 -1
  5. package/README.md +1 -1
  6. package/TunnelShare-necyr77h.js +14 -0
  7. package/{agent.command-tge9rvmt.js → agent.command-8sma9jnd.js} +5 -5
  8. package/akanCode.js +2 -2
  9. package/{application.command-j5b8yrcf.js → application.command-v7xbe18e.js} +9 -9
  10. package/{applicationBuildRunner-s41mgz21.js → applicationBuildRunner-qaxt8try.js} +5 -5
  11. package/buildBatch.proc.js +5 -5
  12. package/{cloud.command-q9srng6e.js → cloud.command-gxspyqpr.js} +13 -13
  13. package/cloud.script-0trnvgbv.js +24 -0
  14. package/{code.command-n6r6zt97.js → code.command-ds7sr16b.js} +6 -6
  15. package/{context.command-1je84w1b.js → context.command-ytr0n79h.js} +16 -16
  16. package/context.runner-cjkadr7r.js +25 -0
  17. package/{guideline.command-0e0sx2vg.js → guideline.command-6tnmtn4w.js} +2 -2
  18. package/guidelines/conventions/conventions.instruction.md +4 -3
  19. package/guidelines/queryRule/queryRule.instruction.md +6 -2
  20. package/incrementalBuilder.proc.js +3 -3
  21. package/{index-tbmtmkhx.js → index-0jxja6c2.js} +2 -2
  22. package/{index-1xqq3va9.js → index-1g5atn4s.js} +9 -9
  23. package/{index-x7bny3wv.js → index-32hkenqb.js} +1 -1
  24. package/{index-vyh8kemm.js → index-37gfh3nw.js} +3 -3
  25. package/{index-cgyqx6q1.js → index-3xm8hm4f.js} +2 -2
  26. package/{index-6nqnqzv1.js → index-5q6tyqv5.js} +1 -1
  27. package/{index-3xhak9e0.js → index-60gryg73.js} +1 -1
  28. package/{index-ex35dg39.js → index-6a64svwc.js} +1 -1
  29. package/{index-5m0s0gdv.js → index-6tkzmfze.js} +1 -1
  30. package/{index-9h0z0tjr.js → index-9f2bkqpf.js} +2 -2
  31. package/{index-rp9anyeb.js → index-arwtza6k.js} +4 -4
  32. package/{index-cq5x7a9k.js → index-bm5ed553.js} +8 -8
  33. package/{index-6mprvdt8.js → index-c090a8wn.js} +116 -39
  34. package/{index-t8npm331.js → index-cj3md29d.js} +3 -3
  35. package/{index-94jq9cbz.js → index-d5kf5rct.js} +2 -2
  36. package/{index-f9118j70.js → index-gzjpj0sw.js} +1 -1
  37. package/{index-p44jnjfr.js → index-hgeq1wpr.js} +2 -2
  38. package/{index-gxqvev8w.js → index-hzsmeevh.js} +2 -2
  39. package/{index-551gh8h2.js → index-k1s1ps6r.js} +3 -3
  40. package/{index-g5px5pxd.js → index-k8zer3t3.js} +1 -1
  41. package/{index-1bhv9dh4.js → index-khefnpqw.js} +4 -4
  42. package/{index-c9rfak6r.js → index-mt611jnw.js} +7 -7
  43. package/{index-hagw9c94.js → index-mzenhe26.js} +3 -3
  44. package/{index-4fe4qqgn.js → index-pkg6bhgc.js} +3 -3
  45. package/{index-8abyrfw8.js → index-q3kddxxd.js} +3 -3
  46. package/{index-73esn3y2.js → index-s2g91tgy.js} +1 -1
  47. package/{index-7xy30jev.js → index-tq0mjh8w.js} +4 -4
  48. package/{index-85h3dhe0.js → index-vt87d6kx.js} +7 -7
  49. package/{index-deckcwbg.js → index-zjfz6rvx.js} +2 -2
  50. package/index.js +22 -22
  51. package/{library.command-ys9s0mtc.js → library.command-d29mkrn1.js} +3 -3
  52. package/{localRegistry.command-kmp3sd47.js → localRegistry.command-e1d1sm2q.js} +12 -12
  53. package/{module.command-5sx9453y.js → module.command-7kgfp688.js} +5 -5
  54. package/{package.command-s0d3417k.js → package.command-9r2215cr.js} +3 -3
  55. package/package.json +3 -3
  56. package/{page.command-zsa03pmc.js → page.command-2jhwcye7.js} +3 -3
  57. package/{pipeline.command-j8h6qsha.js → pipeline.command-gcbxwwng.js} +2 -2
  58. package/{primitive.command-n2978nmw.js → primitive.command-dzjh98t1.js} +6 -6
  59. package/{projectTypecheck-qg2jf80j.js → projectTypecheck-wkbzjpry.js} +1 -1
  60. package/{quality.command-7kgz46st.js → quality.command-3yg6gt8j.js} +2 -2
  61. package/{repair.command-2sszcckw.js → repair.command-d1gm1hqc.js} +5 -5
  62. package/{scalar.command-230jrhzf.js → scalar.command-ntd52q4x.js} +4 -4
  63. package/{subspace.command-y5v4ypd3.js → subspace.command-w7540907.js} +8 -8
  64. package/{tunnel.command-ja29zghd.js → tunnel.command-61gd7btn.js} +7 -7
  65. package/{workflow.command-0eg8czt5.js → workflow.command-fykqj11r.js} +10 -10
  66. package/{workspace.command-zcym1dk5.js → workspace.command-fabmw1hc.js} +24 -24
  67. package/TunnelShare-s7bpe55e.js +0 -14
  68. package/cloud.script-vfsd4gxs.js +0 -24
  69. package/context.runner-xg0ngz93.js +0 -25
package/.build-stamp CHANGED
@@ -1 +1 @@
1
- 0b08571b982fd7b2ccd3720c27f960eb948650e831ba3250f05dad12484f7c8f
1
+ d841223d37e7604ad510571708a12c40ac15a37fddad72bb5a8b30ab5071f0f8
@@ -1,8 +1,8 @@
1
1
  // @bun
2
2
  import {
3
3
  CodeAgent2
4
- } from "./index-vyh8kemm.js";
5
- import"./index-73esn3y2.js";
4
+ } from "./index-37gfh3nw.js";
5
+ import"./index-s2g91tgy.js";
6
6
  import"./index-7md2g9vw.js";
7
7
  export {
8
8
  CodeAgent2 as CodeAgent
@@ -5,7 +5,7 @@ import {
5
5
  McpTokenStore,
6
6
  McpSignIn,
7
7
  AkanCodeCompaction2
8
- } from "./index-73esn3y2.js";
8
+ } from "./index-s2g91tgy.js";
9
9
  import {
10
10
  CodeTuiLines2,
11
11
  CodeTuiAgents2,
package/README.ko.md CHANGED
@@ -118,7 +118,7 @@ Akan 프레임워크 패키지는 `dist/pkgs/*`에서만 배포합니다. `verif
118
118
 
119
119
  ## 요구사항
120
120
 
121
- - [Bun](https://bun.sh) `>=1.4.0`
121
+ - [Bun](https://bun.sh) `>=1.4.4`
122
122
  - TypeScript Akan 워크스페이스
123
123
  - 네이티브 빌드: Xcode(iOS), Android SDK와 JDK 21(Android), Rust(데스크톱)
124
124
 
package/README.md CHANGED
@@ -119,7 +119,7 @@ artifact is built last and is not overwritten by the root `akan` bootstrap scrip
119
119
 
120
120
  ## Requirements
121
121
 
122
- - [Bun](https://bun.sh) `>=1.4.0`
122
+ - [Bun](https://bun.sh) `>=1.4.4`
123
123
  - A TypeScript Akan workspace
124
124
  - For native builds: Xcode (iOS), the Android SDK and JDK 21 (Android), or Rust (desktop)
125
125
 
@@ -0,0 +1,14 @@
1
+ // @bun
2
+ import {
3
+ TunnelShare2
4
+ } from "./index-32hkenqb.js";
5
+ import"./index-9f2bkqpf.js";
6
+ import"./index-k1s1ps6r.js";
7
+ import"./index-m9jj544v.js";
8
+ import"./index-c090a8wn.js";
9
+ import"./index-5q6tyqv5.js";
10
+ import"./index-hzsmeevh.js";
11
+ import"./index-52w0fvh8.js";
12
+ export {
13
+ TunnelShare2 as TunnelShare
14
+ };
@@ -2,16 +2,16 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-g5px5pxd.js";
5
+ } from "./index-k8zer3t3.js";
6
6
  import"./index-52w0fvh8.js";
7
- import"./index-gxqvev8w.js";
7
+ import"./index-hzsmeevh.js";
8
8
  import"./index-hj6w4ka1.js";
9
- import"./index-5m0s0gdv.js";
10
- import"./index-tbmtmkhx.js";
9
+ import"./index-6tkzmfze.js";
10
+ import"./index-0jxja6c2.js";
11
11
  import"./index-zzvvc845.js";
12
12
  import {
13
13
  AgentScript
14
- } from "./index-4fe4qqgn.js";
14
+ } from "./index-pkg6bhgc.js";
15
15
 
16
16
  // pkgs/@akanjs/cli/agent/agent.command.ts
17
17
  class AgentCommand extends command("agent", [AgentScript], ({ public: target }) => ({
package/akanCode.js CHANGED
@@ -28,7 +28,7 @@ import {
28
28
  CodeMailbox2,
29
29
  CodeSessionFork2,
30
30
  CodeAgent2
31
- } from "./index-vyh8kemm.js";
31
+ } from "./index-37gfh3nw.js";
32
32
  import {
33
33
  akanCodeDefaultModel2,
34
34
  akanCodeModel2,
@@ -40,7 +40,7 @@ import {
40
40
  SubagentPool2,
41
41
  akanCodePaths2,
42
42
  AkanCodeCompaction2
43
- } from "./index-73esn3y2.js";
43
+ } from "./index-s2g91tgy.js";
44
44
  import"./index-7md2g9vw.js";
45
45
  import {
46
46
  CodeAgentRpcHost2
@@ -7,19 +7,19 @@ import {
7
7
  Exec,
8
8
  Workspace,
9
9
  command
10
- } from "./index-g5px5pxd.js";
10
+ } from "./index-k8zer3t3.js";
11
11
  import"./index-52w0fvh8.js";
12
- import"./index-gxqvev8w.js";
12
+ import"./index-hzsmeevh.js";
13
13
  import"./index-5nd1wtkv.js";
14
- import"./index-ex35dg39.js";
14
+ import"./index-6a64svwc.js";
15
15
  import"./index-m9jj544v.js";
16
- import"./index-551gh8h2.js";
17
- import"./index-6mprvdt8.js";
18
- import"./index-6nqnqzv1.js";
19
- import"./index-p44jnjfr.js";
16
+ import"./index-k1s1ps6r.js";
17
+ import"./index-c090a8wn.js";
18
+ import"./index-5q6tyqv5.js";
19
+ import"./index-hgeq1wpr.js";
20
20
  import {
21
21
  ApplicationScript
22
- } from "./index-1xqq3va9.js";
22
+ } from "./index-1g5atn4s.js";
23
23
  import"./index-7md2g9vw.js";
24
24
  import {
25
25
  writeOption,
@@ -28,7 +28,7 @@ import {
28
28
  allowLocalOption,
29
29
  publicEnvOption
30
30
  } from "./index-mdjc93e1.js";
31
- import"./index-f9118j70.js";
31
+ import"./index-gzjpj0sw.js";
32
32
 
33
33
  // pkgs/@akanjs/cli/application/application.command.ts
34
34
  import { MigrationCommand } from "akanjs/server/migration/migrationCommand";
@@ -4,19 +4,19 @@ import {
4
4
  Spinner,
5
5
  ProjectTypecheck2,
6
6
  WorkspaceExecutor
7
- } from "./index-gxqvev8w.js";
7
+ } from "./index-hzsmeevh.js";
8
8
  import"./index-52w0fvh8.js";
9
- import"./index-cgyqx6q1.js";
10
- import"./index-6nqnqzv1.js";
9
+ import"./index-3xm8hm4f.js";
10
+ import"./index-5q6tyqv5.js";
11
11
  import {
12
12
  AllRoutesBuilder,
13
13
  FontPruner,
14
14
  precompressArtifacts,
15
15
  SsrBaseArtifactBuilder
16
- } from "./index-8abyrfw8.js";
16
+ } from "./index-q3kddxxd.js";
17
17
  import {
18
18
  CsrArtifactBuilder
19
- } from "./index-6mprvdt8.js";
19
+ } from "./index-c090a8wn.js";
20
20
  import"./index-62md4dwy.js";
21
21
 
22
22
  // pkgs/@akanjs/devkit/applicationBuildRunner.ts
@@ -6,26 +6,26 @@ import {
6
6
  resolveSsrPageEntriesForApp,
7
7
  WorkspaceExecutor,
8
8
  AppExecutor
9
- } from "./index-gxqvev8w.js";
9
+ } from "./index-hzsmeevh.js";
10
10
  import {
11
11
  computeRouteSeedIndex,
12
12
  saveRouteSeedIndex,
13
13
  CsrDevBundler,
14
14
  SsrDevBundler
15
- } from "./index-cgyqx6q1.js";
15
+ } from "./index-3xm8hm4f.js";
16
16
  import"./index-52w0fvh8.js";
17
17
  import {
18
18
  ServerGraphFile,
19
19
  PagesBundleBuilder
20
- } from "./index-6nqnqzv1.js";
20
+ } from "./index-5q6tyqv5.js";
21
21
  import {
22
22
  CssCompiler,
23
23
  FontOptimizer,
24
24
  SsrBaseArtifactBuilder
25
- } from "./index-8abyrfw8.js";
25
+ } from "./index-q3kddxxd.js";
26
26
  import {
27
27
  CsrArtifactBuilder
28
- } from "./index-6mprvdt8.js";
28
+ } from "./index-c090a8wn.js";
29
29
  import"./index-62md4dwy.js";
30
30
 
31
31
  // pkgs/@akanjs/devkit/incrementalBuilder/buildBatch.proc.ts
@@ -3,27 +3,27 @@ import {
3
3
  App,
4
4
  Workspace,
5
5
  command
6
- } from "./index-g5px5pxd.js";
6
+ } from "./index-k8zer3t3.js";
7
7
  import"./index-52w0fvh8.js";
8
- import"./index-gxqvev8w.js";
9
- import"./index-9h0z0tjr.js";
8
+ import"./index-hzsmeevh.js";
9
+ import"./index-9f2bkqpf.js";
10
10
  import {
11
11
  PlatformTestRun
12
- } from "./index-hagw9c94.js";
13
- import"./index-ex35dg39.js";
12
+ } from "./index-mzenhe26.js";
13
+ import"./index-6a64svwc.js";
14
14
  import"./index-m9jj544v.js";
15
- import"./index-551gh8h2.js";
16
- import"./index-6mprvdt8.js";
17
- import"./index-6nqnqzv1.js";
15
+ import"./index-k1s1ps6r.js";
16
+ import"./index-c090a8wn.js";
17
+ import"./index-5q6tyqv5.js";
18
18
  import"./index-5nd1wtkv.js";
19
- import"./index-p44jnjfr.js";
20
- import"./index-1xqq3va9.js";
19
+ import"./index-hgeq1wpr.js";
20
+ import"./index-1g5atn4s.js";
21
21
  import"./index-7md2g9vw.js";
22
22
  import"./index-tvehn2sp.js";
23
- import"./index-deckcwbg.js";
23
+ import"./index-zjfz6rvx.js";
24
24
  import {
25
25
  CloudScript2
26
- } from "./index-c9rfak6r.js";
26
+ } from "./index-mt611jnw.js";
27
27
  import {
28
28
  writeOption,
29
29
  oneNativeTargetOption,
@@ -34,7 +34,7 @@ import {
34
34
  hostOption,
35
35
  subspaceOption
36
36
  } from "./index-mdjc93e1.js";
37
- import"./index-f9118j70.js";
37
+ import"./index-gzjpj0sw.js";
38
38
 
39
39
  // pkgs/@akanjs/cli/cloud/cloud.command.ts
40
40
  var localRegistryUrl = () => process.env.AKAN_NPM_REGISTRY ?? "http://127.0.0.1:4873";
@@ -0,0 +1,24 @@
1
+ // @bun
2
+ import {
3
+ CloudScript2
4
+ } from "./index-mt611jnw.js";
5
+ import"./index-mzenhe26.js";
6
+ import"./index-1g5atn4s.js";
7
+ import"./index-gzjpj0sw.js";
8
+ import"./index-hgeq1wpr.js";
9
+ import"./index-zjfz6rvx.js";
10
+ import"./index-6a64svwc.js";
11
+ import"./index-9f2bkqpf.js";
12
+ import"./index-k1s1ps6r.js";
13
+ import"./index-m9jj544v.js";
14
+ import"./index-k8zer3t3.js";
15
+ import"./index-7md2g9vw.js";
16
+ import"./index-c090a8wn.js";
17
+ import"./index-5nd1wtkv.js";
18
+ import"./index-5q6tyqv5.js";
19
+ import"./index-hzsmeevh.js";
20
+ import"./index-tvehn2sp.js";
21
+ import"./index-52w0fvh8.js";
22
+ export {
23
+ CloudScript2 as CloudScript
24
+ };
@@ -4,9 +4,9 @@ import {
4
4
  runner,
5
5
  script,
6
6
  command
7
- } from "./index-g5px5pxd.js";
7
+ } from "./index-k8zer3t3.js";
8
8
  import"./index-52w0fvh8.js";
9
- import"./index-gxqvev8w.js";
9
+ import"./index-hzsmeevh.js";
10
10
  import {
11
11
  akanCodeDefaultModel2,
12
12
  CodeAgentStreamPrinter2
@@ -19,7 +19,7 @@ class CodeRunner extends runner("code") {
19
19
  async serve(options, listen) {
20
20
  await import("./consoleToStderr-h5bryj94.js");
21
21
  const [{ CodeAgent }, { CodeAgentRpcHost }, { CodeAgentRpcListener }] = await Promise.all([
22
- import("./CodeAgent-fee0pnwp.js"),
22
+ import("./CodeAgent-qrhqfc5s.js"),
23
23
  import("./CodeAgentRpcHost-9g27hmer.js"),
24
24
  import("./CodeAgentRpcListener-7p7z5dd7.js")
25
25
  ]);
@@ -34,8 +34,8 @@ class CodeRunner extends runner("code") {
34
34
  }
35
35
  async tui(options, seed) {
36
36
  const [{ CodeAgent }, { CodeTui }] = await Promise.all([
37
- import("./CodeAgent-fee0pnwp.js"),
38
- import("./CodeTui-xh71b2k8.js")
37
+ import("./CodeAgent-qrhqfc5s.js"),
38
+ import("./CodeTui-k2c7wzhf.js")
39
39
  ]);
40
40
  const agentOptions = await CodeRunner.#agentOptions(options, false);
41
41
  let resume = options.resume;
@@ -67,7 +67,7 @@ class CodeRunner extends runner("code") {
67
67
  }
68
68
  }
69
69
  async run(prompt, options) {
70
- const { CodeAgent } = await import("./CodeAgent-fee0pnwp.js");
70
+ const { CodeAgent } = await import("./CodeAgent-qrhqfc5s.js");
71
71
  const agent = await CodeAgent.create(await CodeRunner.#agentOptions(options, false));
72
72
  const printer = new CodeAgentStreamPrinter2({ json: options.json, thinking: options.thinking });
73
73
  agent.on((event) => printer.print(event));
@@ -2,28 +2,28 @@
2
2
  import {
3
3
  Workspace,
4
4
  command
5
- } from "./index-g5px5pxd.js";
5
+ } from "./index-k8zer3t3.js";
6
6
  import"./index-52w0fvh8.js";
7
- import"./index-gxqvev8w.js";
7
+ import"./index-hzsmeevh.js";
8
8
  import"./index-hj6w4ka1.js";
9
- import"./index-5m0s0gdv.js";
10
- import"./index-tbmtmkhx.js";
11
- import"./index-cq5x7a9k.js";
12
- import"./index-ex35dg39.js";
9
+ import"./index-6tkzmfze.js";
10
+ import"./index-0jxja6c2.js";
11
+ import"./index-bm5ed553.js";
12
+ import"./index-6a64svwc.js";
13
13
  import"./index-m9jj544v.js";
14
- import"./index-551gh8h2.js";
15
- import"./index-6mprvdt8.js";
16
- import"./index-6nqnqzv1.js";
14
+ import"./index-k1s1ps6r.js";
15
+ import"./index-c090a8wn.js";
16
+ import"./index-5q6tyqv5.js";
17
17
  import"./index-zzvvc845.js";
18
- import"./index-t8npm331.js";
19
- import"./index-3xhak9e0.js";
20
- import"./index-1bhv9dh4.js";
21
- import"./index-rp9anyeb.js";
22
- import"./index-94jq9cbz.js";
23
- import"./index-85h3dhe0.js";
18
+ import"./index-cj3md29d.js";
19
+ import"./index-60gryg73.js";
20
+ import"./index-khefnpqw.js";
21
+ import"./index-arwtza6k.js";
22
+ import"./index-d5kf5rct.js";
23
+ import"./index-vt87d6kx.js";
24
24
  import {
25
25
  ContextScript
26
- } from "./index-7xy30jev.js";
26
+ } from "./index-tq0mjh8w.js";
27
27
 
28
28
  // pkgs/@akanjs/cli/context/context.command.ts
29
29
  class ContextCommand extends command("context", [ContextScript], ({ public: target }) => ({
@@ -0,0 +1,25 @@
1
+ // @bun
2
+ import {
3
+ ContextRunner2
4
+ } from "./index-bm5ed553.js";
5
+ import"./index-vt87d6kx.js";
6
+ import"./index-d5kf5rct.js";
7
+ import"./index-arwtza6k.js";
8
+ import"./index-cj3md29d.js";
9
+ import"./index-khefnpqw.js";
10
+ import"./index-60gryg73.js";
11
+ import"./index-6a64svwc.js";
12
+ import"./index-k1s1ps6r.js";
13
+ import"./index-m9jj544v.js";
14
+ import"./index-0jxja6c2.js";
15
+ import"./index-6tkzmfze.js";
16
+ import"./index-zzvvc845.js";
17
+ import"./index-k8zer3t3.js";
18
+ import"./index-c090a8wn.js";
19
+ import"./index-5q6tyqv5.js";
20
+ import"./index-hzsmeevh.js";
21
+ import"./index-hj6w4ka1.js";
22
+ import"./index-52w0fvh8.js";
23
+ export {
24
+ ContextRunner2 as ContextRunner
25
+ };
@@ -2,9 +2,9 @@
2
2
  import {
3
3
  script,
4
4
  command
5
- } from "./index-g5px5pxd.js";
5
+ } from "./index-k8zer3t3.js";
6
6
  import"./index-52w0fvh8.js";
7
- import"./index-gxqvev8w.js";
7
+ import"./index-hzsmeevh.js";
8
8
  import {
9
9
  Prompter2
10
10
  } from "./index-zzvvc845.js";
@@ -324,9 +324,10 @@ orchestration in `service`, client state in `store`; `Template` is forms, `Unit`
324
324
  `sort: {}` always present. Chain methods validate → mutate → `return this`, never `save()` (the caller saves, so
325
325
  `org.removeUser(id).removeInvite(id).save()` composes), with a one-line transition comment above each. Atomic
326
326
  counters live on the Model class with the updater callback, returning `!!modifiedCount`; indexes and derived
327
- totals go in `static override _onSchema`. **Removal is always soft** and reads see live rows unless
328
- `{ withRemoved: true }`. `updateById` / `removeById` fire no hooks — a cascading or `_postRemove` model removes
329
- through `remove<Model>(id)`, and `pickAndWrite` writes through the save hooks (`queryRule`).
327
+ totals go in `static override _onSchema`. **Removal is soft** and reads see live rows unless
328
+ `{ withRemoved: true }`; the one hard delete is `purge<Filter>` / `purgeMany`, for data past retention.
329
+ `updateById` / `removeById` fire no hooks — a cascading or `_postRemove` model removes through
330
+ `remove<Model>(id)`, and `pickAndWrite` writes through the save hooks (`queryRule`).
330
331
  - **`<model>.service.ts`** — a few lines: load → chain → `return await ….save()` (keep the `return await`). Side
331
332
  effects go in `override async _preUpdate` / `_postCreate`; fire-and-forget is `void`-ed. Load every referenced
332
333
  document, then save, then notify. Return `null` / `false` for not allowed or not found; the signal decides
@@ -88,8 +88,12 @@ this is the full contract behind them.
88
88
 
89
89
  ## Soft Removal And The Facade's Writes
90
90
 
91
- - **Removal is always soft** — the framework has no hard delete for a model table, and `delete` is deliberately
92
- left unused so it can mean one later. Every read and query-level write sees live rows only (`removedAt IS NULL`).
91
+ - **Removal is soft** — every remove stamps `removedAt`, and every read and query-level write sees live rows only
92
+ (`removedAt IS NULL`).
93
+ - **`purge<Filter>(...)` / `purgeMany(query)` is the one hard delete**, for data you mean to lose, such as logs past
94
+ their retention. It deletes every row the query matches, removed rows too (`{ removedAt: q.lt(cutoff) }` clears old
95
+ removals), and returns the count. The search mirror's rows go with each row, and it runs no hook, cascade or live
96
+ event and has no undo. It deletes 1,000 rows per statement, and it refuses a query that matches every row.
93
97
  - **`{ withRemoved: true }` reaches removed rows**: the third argument of `find` / `findOne` / `findById`
94
98
  (projection second, `null` when none), the last of `count` / `exists` / `updateMany`, or inside `updateOne` /
95
99
  `updateById`'s options. Without it, a `removedAt` condition only a removed row can meet (`q.exists("removedAt")`,
@@ -8,7 +8,7 @@ import {
8
8
  CodegenLock,
9
9
  WorkspaceExecutor,
10
10
  AppExecutor
11
- } from "./index-gxqvev8w.js";
11
+ } from "./index-hzsmeevh.js";
12
12
  import"./index-52w0fvh8.js";
13
13
  import {
14
14
  GraphClientEntryDiscovery,
@@ -19,10 +19,10 @@ import {
19
19
  DevChangePlanner,
20
20
  DevGeneratedIndexSync,
21
21
  SsrDevBundler
22
- } from "./index-cgyqx6q1.js";
22
+ } from "./index-3xm8hm4f.js";
23
23
  import {
24
24
  ServerGraphFile
25
- } from "./index-6nqnqzv1.js";
25
+ } from "./index-5q6tyqv5.js";
26
26
  import {
27
27
  prepareDevWatchBatch
28
28
  } from "./index-a5vmm6x4.js";
@@ -10,7 +10,7 @@ import {
10
10
  isScannedRootEntry,
11
11
  AppExecutor,
12
12
  LibExecutor
13
- } from "./index-gxqvev8w.js";
13
+ } from "./index-hzsmeevh.js";
14
14
  import {
15
15
  FileSys2
16
16
  } from "./index-52w0fvh8.js";
@@ -23,7 +23,7 @@ import {
23
23
  workflowPathsForPlan,
24
24
  workflowRunArtifactPath,
25
25
  workflowSyncDir
26
- } from "./index-5m0s0gdv.js";
26
+ } from "./index-6tkzmfze.js";
27
27
 
28
28
  // pkgs/@akanjs/devkit/akanContext.ts
29
29
  import { readdir } from "fs/promises";
@@ -41,7 +41,7 @@ import {
41
41
  script,
42
42
  markCliErrorPrinted,
43
43
  assertPromptable
44
- } from "./index-g5px5pxd.js";
44
+ } from "./index-k8zer3t3.js";
45
45
  import {
46
46
  AppInfo,
47
47
  CommandExecutionError,
@@ -49,11 +49,11 @@ import {
49
49
  AppExecutor,
50
50
  LibExecutor,
51
51
  PkgExecutor
52
- } from "./index-gxqvev8w.js";
52
+ } from "./index-hzsmeevh.js";
53
53
  import {
54
54
  DesktopServerStage,
55
55
  UpdateUploader
56
- } from "./index-ex35dg39.js";
56
+ } from "./index-6a64svwc.js";
57
57
  import {
58
58
  resolveMobileTargets,
59
59
  resolveAppId
@@ -62,17 +62,17 @@ import {
62
62
  NativePublicEnv,
63
63
  UpdatePackFolder,
64
64
  NativeApp
65
- } from "./index-551gh8h2.js";
65
+ } from "./index-k1s1ps6r.js";
66
66
  import {
67
67
  LibraryScript
68
- } from "./index-p44jnjfr.js";
68
+ } from "./index-hgeq1wpr.js";
69
69
  import {
70
70
  stripAnsi
71
71
  } from "./index-7md2g9vw.js";
72
72
  import {
73
73
  SlicePlanner,
74
74
  formatSlicePlan
75
- } from "./index-f9118j70.js";
75
+ } from "./index-gzjpj0sw.js";
76
76
  import {
77
77
  openBrowser
78
78
  } from "./index-9dp031by.js";
@@ -1899,7 +1899,7 @@ ${uniqueCandidates.map((candidate) => ` - ${candidate}`).join(`
1899
1899
 
1900
1900
  // pkgs/@akanjs/cli/application/application.runner.ts
1901
1901
  import { Logger as Logger3, toError } from "akanjs/common";
1902
- var loadBuildRunner = async () => (await import("./applicationBuildRunner-s41mgz21.js")).ApplicationBuildRunner;
1902
+ var loadBuildRunner = async () => (await import("./applicationBuildRunner-qaxt8try.js")).ApplicationBuildRunner;
1903
1903
  var loadPrompts = async () => await import("@inquirer/prompts");
1904
1904
 
1905
1905
  class ApplicationRunner extends runner("application") {
@@ -2100,7 +2100,7 @@ if (loaded) process.exitCode = await loaded.migrations.command(loaded.server, ar
2100
2100
  await new (await loadBuildRunner())(app).typecheck(options);
2101
2101
  }
2102
2102
  async typecheckLibrary(lib, options = {}) {
2103
- const { ProjectTypecheck } = await import("./projectTypecheck-qg2jf80j.js");
2103
+ const { ProjectTypecheck } = await import("./projectTypecheck-wkbzjpry.js");
2104
2104
  const root = lib.workspace.workspaceRoot;
2105
2105
  await new ProjectTypecheck(lib.cwdPath, root, { ...process.env, AKAN_WORKSPACE_ROOT: root }).run([
2106
2106
  "../../server.ts",
@@ -3688,7 +3688,7 @@ class ApplicationScript extends script("application", [ApplicationRunner, Librar
3688
3688
  await Promise.all(shares.map(async (share) => await share.close()));
3689
3689
  }, "Abandoning the tunnel release; the shares expire on their own.");
3690
3690
  await Promise.all(apps.map(async (app) => {
3691
- const { TunnelShare } = await import("./TunnelShare-s7bpe55e.js");
3691
+ const { TunnelShare } = await import("./TunnelShare-necyr77h.js");
3692
3692
  const share = await TunnelShare.open(app, { workspace: app.workspace });
3693
3693
  shares.push(share);
3694
3694
  urls.set(app.name, share.url);
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  GlobalConfig,
4
4
  CloudApi
5
- } from "./index-9h0z0tjr.js";
5
+ } from "./index-9f2bkqpf.js";
6
6
 
7
7
  // pkgs/@akanjs/cli/tunnel/TunnelShare.ts
8
8
  import { TunnelAgent } from "akanjs/server/tunnel";
@@ -5,7 +5,7 @@ import {
5
5
  McpServerConfig,
6
6
  McpSignIn,
7
7
  AkanCodeCompaction2
8
- } from "./index-73esn3y2.js";
8
+ } from "./index-s2g91tgy.js";
9
9
  import {
10
10
  stripAnsi
11
11
  } from "./index-7md2g9vw.js";
@@ -809,7 +809,7 @@ class AkanToolPack2 {
809
809
  return { name: "akan-tools", factory: async (pi) => await this.#register(pi) };
810
810
  }
811
811
  async names() {
812
- const { ContextRunner } = await import("./context.runner-xg0ngz93.js");
812
+ const { ContextRunner } = await import("./context.runner-cjkadr7r.js");
813
813
  return [
814
814
  ...new ContextRunner().listMcpTools(this.#options.mode).map((tool) => tool.name),
815
815
  AkanToolPack2.verifyToolName
@@ -817,7 +817,7 @@ class AkanToolPack2 {
817
817
  }
818
818
  static verifyToolName = "akan_verify";
819
819
  async#register(pi) {
820
- const { ContextRunner } = await import("./context.runner-xg0ngz93.js");
820
+ const { ContextRunner } = await import("./context.runner-cjkadr7r.js");
821
821
  const runner = new ContextRunner;
822
822
  const guidelineNames = await AkanToolPack2.#guidelineNames();
823
823
  for (const tool of runner.listMcpTools(this.#options.mode, { guidelineNames })) {
@@ -19,11 +19,11 @@ import {
19
19
  CsrDevPaths,
20
20
  PagesEntrySourceGenerator,
21
21
  PagesBundleBuilder
22
- } from "./index-6nqnqzv1.js";
22
+ } from "./index-5q6tyqv5.js";
23
23
  import {
24
24
  AsyncDefaultExportDetector,
25
25
  resolveSsrPageEntriesForApp
26
- } from "./index-gxqvev8w.js";
26
+ } from "./index-hzsmeevh.js";
27
27
 
28
28
  // pkgs/@akanjs/devkit/frontendBuild/autoImportSync.ts
29
29
  import { readdir, readFile, stat } from "fs/promises";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  AsyncDefaultExportDetector,
4
4
  resolveSsrPageEntriesForApp
5
- } from "./index-gxqvev8w.js";
5
+ } from "./index-hzsmeevh.js";
6
6
  import {
7
7
  FileSys2
8
8
  } from "./index-52w0fvh8.js";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  runner,
4
4
  script
5
- } from "./index-g5px5pxd.js";
5
+ } from "./index-k8zer3t3.js";
6
6
 
7
7
  // pkgs/@akanjs/cli/page/page.runner.ts
8
8
  class PageRunner extends runner("page") {
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  DesktopBin,
4
4
  UpdatePackFolder
5
- } from "./index-551gh8h2.js";
5
+ } from "./index-k1s1ps6r.js";
6
6
  // pkgs/@akanjs/devkit/mobile/desktopServerStage.ts
7
7
  import { cp, mkdir, readdir, rm, writeFile } from "fs/promises";
8
8
  import path from "path";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  AppExecutor,
4
4
  LibExecutor
5
- } from "./index-gxqvev8w.js";
5
+ } from "./index-hzsmeevh.js";
6
6
 
7
7
  // pkgs/@akanjs/devkit/workflow/artifacts.ts
8
8
  import { capitalize } from "akanjs/common";
@@ -9,10 +9,10 @@ import {
9
9
  NativePublicEnv,
10
10
  UpdatePackFolder,
11
11
  NativeApp
12
- } from "./index-551gh8h2.js";
12
+ } from "./index-k1s1ps6r.js";
13
13
  import {
14
14
  ExitCodeError
15
- } from "./index-g5px5pxd.js";
15
+ } from "./index-k8zer3t3.js";
16
16
  import {
17
17
  ConfigLock
18
18
  } from "./index-bqbf654f.js";