@enderfga/claw-orchestrator 3.7.1 → 4.0.3

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 (115) hide show
  1. package/README.md +45 -3
  2. package/configs/autoloop-coder-prompt.md +65 -28
  3. package/configs/autoloop-planner-prompt.md +103 -42
  4. package/configs/autoloop-reviewer-prompt.md +58 -30
  5. package/dist/bin/cli.js +30 -7
  6. package/dist/bin/cli.js.map +1 -1
  7. package/dist/src/autoloop/dispatcher.js +16 -2
  8. package/dist/src/autoloop/dispatcher.js.map +1 -1
  9. package/dist/src/autoloop/messages.d.ts +0 -2
  10. package/dist/src/autoloop/messages.js +0 -2
  11. package/dist/src/autoloop/messages.js.map +1 -1
  12. package/dist/src/autoloop/planner-tools.d.ts +11 -6
  13. package/dist/src/autoloop/planner-tools.js +24 -7
  14. package/dist/src/autoloop/planner-tools.js.map +1 -1
  15. package/dist/src/autoloop/runner.d.ts +1 -2
  16. package/dist/src/autoloop/runner.js +1 -2
  17. package/dist/src/autoloop/runner.js.map +1 -1
  18. package/dist/src/autoloop/types.d.ts +0 -2
  19. package/dist/src/autoloop/types.js +0 -2
  20. package/dist/src/autoloop/types.js.map +1 -1
  21. package/dist/src/council.js +1 -0
  22. package/dist/src/council.js.map +1 -1
  23. package/dist/src/dashboard/index.html +1066 -12
  24. package/dist/src/embedded-server.d.ts +7 -0
  25. package/dist/src/embedded-server.js +359 -17
  26. package/dist/src/embedded-server.js.map +1 -1
  27. package/dist/src/index.js +222 -1
  28. package/dist/src/index.js.map +1 -1
  29. package/dist/src/session-manager.d.ts +98 -1
  30. package/dist/src/session-manager.js +340 -5
  31. package/dist/src/session-manager.js.map +1 -1
  32. package/dist/src/ultraapp/build-events.d.ts +46 -0
  33. package/dist/src/ultraapp/build-events.js +6 -0
  34. package/dist/src/ultraapp/build-events.js.map +1 -0
  35. package/dist/src/ultraapp/build.d.ts +39 -0
  36. package/dist/src/ultraapp/build.js +111 -0
  37. package/dist/src/ultraapp/build.js.map +1 -0
  38. package/dist/src/ultraapp/conventions.d.ts +8 -0
  39. package/dist/src/ultraapp/conventions.js +248 -0
  40. package/dist/src/ultraapp/conventions.js.map +1 -0
  41. package/dist/src/ultraapp/council-adapter.d.ts +49 -0
  42. package/dist/src/ultraapp/council-adapter.js +152 -0
  43. package/dist/src/ultraapp/council-adapter.js.map +1 -0
  44. package/dist/src/ultraapp/deploy.d.ts +45 -0
  45. package/dist/src/ultraapp/deploy.js +82 -0
  46. package/dist/src/ultraapp/deploy.js.map +1 -0
  47. package/dist/src/ultraapp/diff-apply.d.ts +15 -0
  48. package/dist/src/ultraapp/diff-apply.js +48 -0
  49. package/dist/src/ultraapp/diff-apply.js.map +1 -0
  50. package/dist/src/ultraapp/docker.d.ts +57 -0
  51. package/dist/src/ultraapp/docker.js +83 -0
  52. package/dist/src/ultraapp/docker.js.map +1 -0
  53. package/dist/src/ultraapp/feedback-classifier.d.ts +24 -0
  54. package/dist/src/ultraapp/feedback-classifier.js +85 -0
  55. package/dist/src/ultraapp/feedback-classifier.js.map +1 -0
  56. package/dist/src/ultraapp/files.d.ts +24 -0
  57. package/dist/src/ultraapp/files.js +79 -0
  58. package/dist/src/ultraapp/files.js.map +1 -0
  59. package/dist/src/ultraapp/fix-on-failure-session.d.ts +23 -0
  60. package/dist/src/ultraapp/fix-on-failure-session.js +48 -0
  61. package/dist/src/ultraapp/fix-on-failure-session.js.map +1 -0
  62. package/dist/src/ultraapp/fix-on-failure.d.ts +39 -0
  63. package/dist/src/ultraapp/fix-on-failure.js +69 -0
  64. package/dist/src/ultraapp/fix-on-failure.js.map +1 -0
  65. package/dist/src/ultraapp/host-strategy.d.ts +57 -0
  66. package/dist/src/ultraapp/host-strategy.js +205 -0
  67. package/dist/src/ultraapp/host-strategy.js.map +1 -0
  68. package/dist/src/ultraapp/interview-parser.d.ts +41 -0
  69. package/dist/src/ultraapp/interview-parser.js +83 -0
  70. package/dist/src/ultraapp/interview-parser.js.map +1 -0
  71. package/dist/src/ultraapp/interview-tools.d.ts +16 -0
  72. package/dist/src/ultraapp/interview-tools.js +36 -0
  73. package/dist/src/ultraapp/interview-tools.js.map +1 -0
  74. package/dist/src/ultraapp/json-patch.d.ts +6 -0
  75. package/dist/src/ultraapp/json-patch.js +78 -0
  76. package/dist/src/ultraapp/json-patch.js.map +1 -0
  77. package/dist/src/ultraapp/lifecycle.d.ts +38 -0
  78. package/dist/src/ultraapp/lifecycle.js +31 -0
  79. package/dist/src/ultraapp/lifecycle.js.map +1 -0
  80. package/dist/src/ultraapp/manager.d.ts +150 -0
  81. package/dist/src/ultraapp/manager.js +684 -0
  82. package/dist/src/ultraapp/manager.js.map +1 -0
  83. package/dist/src/ultraapp/narrator-prompt.d.ts +10 -0
  84. package/dist/src/ultraapp/narrator-prompt.js +54 -0
  85. package/dist/src/ultraapp/narrator-prompt.js.map +1 -0
  86. package/dist/src/ultraapp/narrator.d.ts +49 -0
  87. package/dist/src/ultraapp/narrator.js +83 -0
  88. package/dist/src/ultraapp/narrator.js.map +1 -0
  89. package/dist/src/ultraapp/patcher.d.ts +35 -0
  90. package/dist/src/ultraapp/patcher.js +159 -0
  91. package/dist/src/ultraapp/patcher.js.map +1 -0
  92. package/dist/src/ultraapp/router.d.ts +39 -0
  93. package/dist/src/ultraapp/router.js +139 -0
  94. package/dist/src/ultraapp/router.js.map +1 -0
  95. package/dist/src/ultraapp/spec-delta.d.ts +18 -0
  96. package/dist/src/ultraapp/spec-delta.js +35 -0
  97. package/dist/src/ultraapp/spec-delta.js.map +1 -0
  98. package/dist/src/ultraapp/spec.d.ts +82 -0
  99. package/dist/src/ultraapp/spec.js +125 -0
  100. package/dist/src/ultraapp/spec.js.map +1 -0
  101. package/dist/src/ultraapp/store.d.ts +67 -0
  102. package/dist/src/ultraapp/store.js +177 -0
  103. package/dist/src/ultraapp/store.js.map +1 -0
  104. package/dist/src/ultraapp/versions.d.ts +50 -0
  105. package/dist/src/ultraapp/versions.js +65 -0
  106. package/dist/src/ultraapp/versions.js.map +1 -0
  107. package/openclaw.plugin.json +15 -1
  108. package/package.json +3 -1
  109. package/skills/SKILL.md +2 -2
  110. package/skills/references/autoloop.md +7 -4
  111. package/skills/references/dashboard.md +153 -0
  112. package/skills/references/mcp.md +2 -2
  113. package/skills/references/tools.md +183 -0
  114. package/skills/references/ultraapp.md +203 -0
  115. package/skills/ultraapp/SKILL.md +112 -0
@@ -0,0 +1,150 @@
1
+ import { type AppSpec } from './spec.js';
2
+ import { type UltraappStore, type ChatEntry } from './store.js';
3
+ import { type QuestionEnvelope } from './interview-parser.js';
4
+ import { type PatchOp } from './json-patch.js';
5
+ import type { BuildEvent } from './build-events.js';
6
+ import { type DeployArgs, type DeployResult } from './deploy.js';
7
+ import type { UltraappRouter } from './router.js';
8
+ export type RunEvent = {
9
+ type: 'question';
10
+ question: QuestionEnvelope;
11
+ } | {
12
+ type: 'spec-updated';
13
+ spec: AppSpec;
14
+ } | {
15
+ type: 'chat';
16
+ entry: ChatEntry;
17
+ } | {
18
+ type: 'completeness';
19
+ ok: boolean;
20
+ missing: string[];
21
+ } | {
22
+ type: 'interview-complete';
23
+ summary: string;
24
+ } | {
25
+ type: 'build-event';
26
+ event: BuildEvent;
27
+ } | {
28
+ type: 'app-url';
29
+ url: string;
30
+ version: string;
31
+ } | {
32
+ type: 'error';
33
+ message: string;
34
+ };
35
+ interface SessionManagerLike {
36
+ startSession(config: {
37
+ name?: string;
38
+ engine?: string;
39
+ model?: string;
40
+ cwd?: string;
41
+ systemPrompt?: string;
42
+ permissionMode?: string;
43
+ }): Promise<{
44
+ name: string;
45
+ }>;
46
+ sendMessage(name: string, message: string): Promise<{
47
+ output: string;
48
+ }>;
49
+ stopSession(name: string): Promise<void>;
50
+ }
51
+ export interface UltraappManagerOptions {
52
+ store: UltraappStore;
53
+ sessionManager: SessionManagerLike;
54
+ skillPath?: string;
55
+ /** Optional reverse-proxy router. When absent, the build pipeline ends in
56
+ `build-complete` (v0.2 behaviour); when present, deploy runs after build
57
+ and the run reaches `done` with a public-but-local URL. */
58
+ router?: UltraappRouter;
59
+ /** Test seam: stub the deploy state machine. */
60
+ deployFn?: (a: DeployArgs) => Promise<DeployResult>;
61
+ /** Runtime mode for build + deploy. 'host' (default) runs the generated
62
+ app as a regular Node process — works anywhere Node works, no extra
63
+ deps. 'docker' uses `docker build` + `docker run` for isolation; only
64
+ use this when you want shared-host hardening. */
65
+ runtimeMode?: 'host' | 'docker';
66
+ }
67
+ export declare class UltraappManager {
68
+ private readonly opts;
69
+ private readonly runs;
70
+ private readonly skillContent;
71
+ private readonly buildQueue;
72
+ private readonly narrators;
73
+ private readonly classifierSessions;
74
+ private readonly inflightWork;
75
+ constructor(opts: UltraappManagerOptions);
76
+ get store(): UltraappStore;
77
+ createRun(): Promise<string>;
78
+ submitAnswer(runId: string, answer: {
79
+ value: string;
80
+ freeform?: string;
81
+ }): Promise<void>;
82
+ applySpecEdit(runId: string, patch: PatchOp[]): Promise<void>;
83
+ addFile(runId: string, args: {
84
+ kind: 'upload';
85
+ filename: string;
86
+ data: Buffer;
87
+ } | {
88
+ kind: 'path';
89
+ absolutePath: string;
90
+ }): Promise<{
91
+ ref: string;
92
+ }>;
93
+ subscribe(runId: string, listener: (ev: RunEvent) => void): () => void;
94
+ startBuild(runId: string): Promise<void>;
95
+ cancelBuild(runId: string): void;
96
+ buildPosition(runId: string): number;
97
+ private runBuild;
98
+ private runDeployStage;
99
+ startContainer(runId: string): Promise<{
100
+ ok: boolean;
101
+ error?: string;
102
+ }>;
103
+ stopContainer(runId: string): Promise<{
104
+ ok: boolean;
105
+ error?: string;
106
+ }>;
107
+ deleteRun(runId: string): Promise<{
108
+ ok: boolean;
109
+ error?: string;
110
+ }>;
111
+ /**
112
+ * Done-mode chat message — classified into cosmetic / spec-delta /
113
+ * structural and routed accordingly. Cosmetic runs the patcher inline;
114
+ * spec-delta flips mode back to interview with a focused bootstrap;
115
+ * structural posts a narrator note suggesting a new run.
116
+ */
117
+ submitDoneModeMessage(runId: string, text: string): Promise<void>;
118
+ /**
119
+ * Promote a previously-built version to the currently-deployed one.
120
+ * Stops the current container, starts the target's container, and updates
121
+ * the router map atomically.
122
+ */
123
+ promoteVersion(runId: string, toVersion: string): Promise<{
124
+ ok: boolean;
125
+ error?: string;
126
+ }>;
127
+ /** Used by spec-delta to push a system-style bootstrap into the run session. */
128
+ injectSystemMessage(runId: string, text: string): Promise<void>;
129
+ /** Used by spec-delta to flip mode back to 'interview' for the focused
130
+ interview, AND mark the run so the next interview-complete auto-fires
131
+ a build (no need for the user to click Start Build for a delta rerun). */
132
+ setModeForDelta(runId: string): Promise<void>;
133
+ private classifierCall;
134
+ private routeFeedback;
135
+ private runPatcherFlow;
136
+ private patcherCall;
137
+ private onBuildEvent;
138
+ /**
139
+ * Drain all in-flight background work (driveTurn chains, build-queue
140
+ * enqueue, narrator finalisation). Tests should await this in their
141
+ * cleanup hook before removing the per-run tmp directory.
142
+ */
143
+ waitForIdle(): Promise<void>;
144
+ private fireDriveTurn;
145
+ private trackBackground;
146
+ private driveTurn;
147
+ private emit;
148
+ private requireRun;
149
+ }
150
+ export {};