nolo-cli 0.1.21 → 0.1.23
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/agent-runtime/agentRecordConfig.ts +4 -0
- package/agent-runtime/hostAdapter.ts +2 -0
- package/agent-runtime/index.ts +7 -0
- package/agent-runtime/localLoop.ts +2 -0
- package/agent-runtime/platformChatProvider.ts +3 -0
- package/agent-runtime/runtimeToolPolicy.ts +92 -0
- package/agent-runtime/types.ts +42 -0
- package/agentRunCommand.ts +74 -1
- package/agentRuntimeCommands.ts +17 -89
- package/ai/agent/streamAgentChatTurn.ts +104 -20
- package/ai/chat/fetchUtils.native.ts +2 -0
- package/ai/chat/fetchUtils.ts +2 -0
- package/ai/chat/sendOpenAICompletionsRequest.ts +56 -0
- package/ai/chat/sendOpenAIResponseRequest.ts +64 -0
- package/ai/llm/kimi.ts +1 -1
- package/ai/llm/providers.ts +3 -0
- package/ai/llm/reasoningModels.ts +1 -0
- package/ai/skills/skillDocProtocol.ts +95 -3
- package/ai/taskRun/taskRunProtocol.ts +1 -0
- package/ai/tools/agent/agentTools.ts +17 -0
- package/ai/tools/agent/startAgentDialogTool.ts +53 -0
- package/ai/tools/modelUsageTools.ts +5 -0
- package/client/agentRun.test.ts +257 -7
- package/client/agentRun.ts +133 -34
- package/client/localRuntimeAdapter.test.ts +2 -0
- package/client/localRuntimeAdapter.ts +15 -2
- package/database/actions/common.ts +4 -3
- package/database/config.ts +19 -0
- package/machineCommands.ts +400 -45
- package/package.json +4 -2
- package/render/canvas/canvasEditContext.ts +127 -0
- package/render/canvas/canvasRuntime.ts +57 -0
- package/render/canvas/canvasSnapshotParser.ts +76 -0
- package/render/canvas/canvasTree.ts +308 -0
- package/render/canvas/types.ts +46 -0
- package/render/layout/deleteBehavior.ts +52 -0
- package/render/layout/mainLayoutSidebar.ts +17 -0
- package/render/layout/mainLayoutViewMode.ts +56 -0
- package/render/layout/topbarUtils.ts +87 -0
- package/render/layout/useDevReloadPending.ts +30 -0
- package/render/page/createPageAction.ts +183 -0
- package/render/page/docSlice.ts +468 -0
- package/render/page/server/createPage.ts +174 -0
- package/render/page/server/handleCreatePage.ts +91 -0
- package/render/page/server/index.ts +4 -0
- package/render/page/types.ts +17 -0
- package/render/page/useKeyboardSave.ts +48 -0
- package/render/styles/zIndex.ts +12 -0
- package/render/surf/WeatherIconStyles.ts +17 -0
- package/render/surf/color.ts +9 -0
- package/render/surf/config.ts +46 -0
- package/render/surf/screens/style.ts +1 -0
- package/render/surf/styles/ToggleButtonStyles.ts +8 -0
- package/render/surf/utils/groupedWeatherData.ts +32 -0
- package/render/surf/weatherUtils.ts +50 -0
- package/render/table/activityColumns.ts +6 -0
- package/render/table/createTableAction.ts +270 -0
- package/render/table/deleteTableAction.ts +129 -0
- package/render/table/fetchAndCacheTableRows.ts +174 -0
- package/render/table/tableSlice.ts +1106 -0
- package/render/table/tableView.ts +289 -0
- package/render/table/toolValueUtils.ts +363 -0
- package/render/table/types.ts +252 -0
- package/render/table/useCreateTable.ts +72 -0
- package/render/table/useTable.ts +61 -0
- package/render/table/utils/tableSerialization.ts +50 -0
- package/render/web/elements/artifactPreviewCode.ts +43 -0
- package/render/web/elements/artifactRuntimePreload.ts +52 -0
- package/render/web/elements/codeBlockAutoPreview.ts +10 -0
- package/render/web/elements/mermaidPreview.ts +21 -0
- package/render/web/ui/useInlineEdit.ts +135 -0
- package/tableCommands.ts +42 -5
package/tableCommands.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { DEFAULT_NOLO_SERVER_URL } from "./defaultServer";
|
|
2
|
+
import { includeTableActivityColumns } from "./render/table/activityColumns";
|
|
2
3
|
|
|
3
4
|
type EnvLike = Record<string, string | undefined>;
|
|
4
5
|
type OutputLike = { write(chunk: string): unknown };
|
|
@@ -34,10 +35,24 @@ function parseJsonOption<T>(args: string[], flag: string): T | undefined {
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
|
|
38
|
+
function parseJsonOptionAlias<T>(args: string[], primaryFlag: string, aliasFlag: string): T | undefined {
|
|
39
|
+
const primary = readOption(args, primaryFlag);
|
|
40
|
+
const alias = readOption(args, aliasFlag);
|
|
41
|
+
const raw = primary || alias;
|
|
42
|
+
if (!raw) return undefined;
|
|
43
|
+
try {
|
|
44
|
+
return JSON.parse(raw) as T;
|
|
45
|
+
} catch (error) {
|
|
46
|
+
const usedFlag = primary ? primaryFlag : aliasFlag;
|
|
47
|
+
throw new Error(`${usedFlag} must be valid JSON: ${error instanceof Error ? error.message : String(error)}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
37
51
|
function parseOutputMode(raw: string): OutputMode {
|
|
38
52
|
if (!raw) return "full";
|
|
53
|
+
if (raw === "json") return "raw";
|
|
39
54
|
if (raw === "full" || raw === "raw" || raw === "items" || raw === "jsonl") return raw;
|
|
40
|
-
throw new Error(`--output must be one of full, raw, items, jsonl; got ${raw}`);
|
|
55
|
+
throw new Error(`--output must be one of full, raw, items, json, jsonl; got ${raw}`);
|
|
41
56
|
}
|
|
42
57
|
|
|
43
58
|
function parseTableArg(raw: string): { tenantId?: string; tableId?: string } {
|
|
@@ -94,10 +109,26 @@ function formatOutput(input: { envelope: any; rawData: any; mode: OutputMode }):
|
|
|
94
109
|
return Array.isArray(items) ? items.map((item) => JSON.stringify(item)).join("\n") : JSON.stringify(items);
|
|
95
110
|
}
|
|
96
111
|
|
|
112
|
+
function mergeQueryShortcutFilters(args: string[], filters: Record<string, unknown> | undefined): Record<string, unknown> | undefined {
|
|
113
|
+
const row = readOption(args, "--row") || readOption(args, "--row-id");
|
|
114
|
+
const rowDbKey = readOption(args, "--row-dbkey");
|
|
115
|
+
const shortcutFilters: Record<string, unknown> = {};
|
|
116
|
+
if (row) {
|
|
117
|
+
if (row.startsWith("row-")) shortcutFilters.dbKey = row;
|
|
118
|
+
else shortcutFilters.rowId = row;
|
|
119
|
+
}
|
|
120
|
+
if (rowDbKey) shortcutFilters.dbKey = rowDbKey;
|
|
121
|
+
if (Object.keys(shortcutFilters).length === 0) return filters;
|
|
122
|
+
return {
|
|
123
|
+
...(filters ?? {}),
|
|
124
|
+
...shortcutFilters,
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
|
|
97
128
|
function usage(): string {
|
|
98
129
|
return [
|
|
99
130
|
"Usage:",
|
|
100
|
-
" nolo table query --table <tableId|metaKey> [--tenant-id <userId>] [--filters <json>] [--columns <json-array>] [--no-base-fields] [--output full|raw|items|jsonl]",
|
|
131
|
+
" nolo table query --table <tableId|metaKey> [--tenant-id <userId>] [--filters <json>|--filter <json>] [--row <rowId|rowDbKey>] [--columns <json-array>] [--include-activity] [--no-base-fields] [--output full|raw|items|json|jsonl]",
|
|
101
132
|
"",
|
|
102
133
|
].join("\n");
|
|
103
134
|
}
|
|
@@ -117,7 +148,10 @@ export async function runTableQueryCommand(args: string[], deps: TableCommandDep
|
|
|
117
148
|
try {
|
|
118
149
|
outputMode = parseOutputMode(readOption(args, "--output"));
|
|
119
150
|
columns = parseJsonOption<string[]>(args, "--columns");
|
|
120
|
-
filters =
|
|
151
|
+
filters = mergeQueryShortcutFilters(
|
|
152
|
+
args,
|
|
153
|
+
parseJsonOptionAlias<Record<string, unknown>>(args, "--filters", "--filter")
|
|
154
|
+
);
|
|
121
155
|
} catch (error) {
|
|
122
156
|
output.write(`[nolo] table query failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
123
157
|
return 1;
|
|
@@ -127,6 +161,7 @@ export async function runTableQueryCommand(args: string[], deps: TableCommandDep
|
|
|
127
161
|
const authToken = resolveAuthToken(args, env);
|
|
128
162
|
const tenantId = readOption(args, "--tenant-id") || tableArg.tenantId || env.USER_ID || parseJwtTenantId(authToken);
|
|
129
163
|
const tableId = tableArg.tableId;
|
|
164
|
+
const hasSingleRowShortcut = Boolean(readOption(args, "--row") || readOption(args, "--row-id") || readOption(args, "--row-dbkey"));
|
|
130
165
|
if (!tenantId || !tableId) {
|
|
131
166
|
output.write(usage());
|
|
132
167
|
return 1;
|
|
@@ -149,9 +184,11 @@ export async function runTableQueryCommand(args: string[], deps: TableCommandDep
|
|
|
149
184
|
tenantId,
|
|
150
185
|
tableId,
|
|
151
186
|
filters: filters ?? {},
|
|
152
|
-
columns,
|
|
187
|
+
columns: hasFlag(args, "--include-activity")
|
|
188
|
+
? includeTableActivityColumns(columns)
|
|
189
|
+
: columns,
|
|
153
190
|
includeBaseFields: !hasFlag(args, "--no-base-fields"),
|
|
154
|
-
limit: Number(readOption(args, "--limit") || 20),
|
|
191
|
+
limit: Number(readOption(args, "--limit") || (hasSingleRowShortcut ? 1 : 20)),
|
|
155
192
|
offset: Number(readOption(args, "--offset") || 0),
|
|
156
193
|
sortBy: readOption(args, "--sort-by") || "updatedAt",
|
|
157
194
|
sortOrder: readOption(args, "--sort-order") === "asc" ? "asc" : "desc",
|