@norskvideo/norsk-studio-alpha 1.27.0-2025-10-09-e06493b0 → 1.27.0-2025-10-12-efe33298

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 (54) hide show
  1. package/lib/info.js +5 -1
  2. package/lib/info.js.map +1 -1
  3. package/lib/output.tams/runtime.js +1 -2
  4. package/lib/output.tams/runtime.js.map +1 -1
  5. package/lib/processor.actionReplay/runtime.js +2 -2
  6. package/lib/processor.actionReplay/runtime.js.map +1 -1
  7. package/lib/processor.audioLevel/runtime.js +5 -3
  8. package/lib/processor.audioLevel/runtime.js.map +1 -1
  9. package/lib/processor.delayAll/runtime.js +2 -4
  10. package/lib/processor.delayAll/runtime.js.map +1 -1
  11. package/lib/processor.whisper-transcribe/runtime.js +2 -2
  12. package/lib/processor.whisper-transcribe/runtime.js.map +1 -1
  13. package/lib/util.agent/_gen/types.d.ts +343 -0
  14. package/lib/util.agent/_gen/types.js +3 -0
  15. package/lib/util.agent/_gen/types.js.map +1 -0
  16. package/lib/util.agent/fullscreen-view.d.ts +4 -0
  17. package/lib/util.agent/fullscreen-view.js +132 -0
  18. package/lib/util.agent/fullscreen-view.js.map +1 -0
  19. package/lib/util.agent/info.d.ts +126 -0
  20. package/lib/util.agent/info.js +141 -0
  21. package/lib/util.agent/info.js.map +1 -0
  22. package/lib/util.agent/inline-view.d.ts +6 -0
  23. package/lib/util.agent/inline-view.js +43 -0
  24. package/lib/util.agent/inline-view.js.map +1 -0
  25. package/lib/util.agent/runtime.d.ts +180 -0
  26. package/lib/util.agent/runtime.js +1241 -0
  27. package/lib/util.agent/runtime.js.map +1 -0
  28. package/lib/util.agent/summary-view.d.ts +4 -0
  29. package/lib/util.agent/summary-view.js +68 -0
  30. package/lib/util.agent/summary-view.js.map +1 -0
  31. package/lib/util.agent/types.d.ts +285 -0
  32. package/lib/util.agent/types.js +3 -0
  33. package/lib/util.agent/types.js.map +1 -0
  34. package/lib/util.aiChat/_gen/types.d.ts +98 -0
  35. package/lib/util.aiChat/_gen/types.js +3 -0
  36. package/lib/util.aiChat/_gen/types.js.map +1 -0
  37. package/lib/util.aiChat/info.d.ts +70 -0
  38. package/lib/util.aiChat/info.js +92 -0
  39. package/lib/util.aiChat/info.js.map +1 -0
  40. package/lib/util.aiChat/runtime.d.ts +32 -0
  41. package/lib/util.aiChat/runtime.js +304 -0
  42. package/lib/util.aiChat/runtime.js.map +1 -0
  43. package/lib/util.aiChat/summary-view.d.ts +7 -0
  44. package/lib/util.aiChat/summary-view.js +48 -0
  45. package/lib/util.aiChat/summary-view.js.map +1 -0
  46. package/lib/util.aiChat/types.d.ts +62 -0
  47. package/lib/util.aiChat/types.js +3 -0
  48. package/lib/util.aiChat/types.js.map +1 -0
  49. package/lib/util.timestamps/runtime.js +2 -2
  50. package/lib/util.timestamps/runtime.js.map +1 -1
  51. package/package.json +4 -4
  52. package/lib/shared/schemas.d.ts +0 -8
  53. package/lib/shared/schemas.js +0 -44
  54. package/lib/shared/schemas.js.map +0 -1
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const jsx_runtime_1 = require("react/jsx-runtime");
27
+ const React = __importStar(require("react"));
28
+ const react_1 = require("react");
29
+ function FullscreenView({ state, config, sendCommand, urls }) {
30
+ const [memoryData, setMemoryData] = (0, react_1.useState)({});
31
+ const [loading, setLoading] = (0, react_1.useState)(false);
32
+ const [activeTab, setActiveTab] = (0, react_1.useState)('status');
33
+ const fetchMemoryData = async () => {
34
+ setLoading(true);
35
+ try {
36
+ const response = await fetch(`${urls.instanceUrl}/memory/summary`);
37
+ if (response.ok) {
38
+ const data = await response.json();
39
+ setMemoryData({
40
+ working: data.working_memory,
41
+ persistent: data.persistent_memory
42
+ });
43
+ }
44
+ }
45
+ catch (error) {
46
+ console.error('Failed to fetch memory data:', error);
47
+ }
48
+ finally {
49
+ setLoading(false);
50
+ }
51
+ };
52
+ React.useEffect(() => {
53
+ void fetchMemoryData();
54
+ }, [config.id]);
55
+ const getStatusColor = (status, isRunning) => {
56
+ if (!isRunning)
57
+ return "text-gray-500 bg-gray-100 dark:text-gray-400 dark:bg-gray-800";
58
+ switch (status) {
59
+ case 'analyzing': return "text-blue-700 bg-blue-100 dark:text-blue-300 dark:bg-blue-900";
60
+ case 'planning': return "text-yellow-700 bg-yellow-100 dark:text-yellow-300 dark:bg-yellow-900";
61
+ case 'executing': return "text-green-700 bg-green-100 dark:text-green-300 dark:bg-green-900";
62
+ case 'error': return "text-red-700 bg-red-100 dark:text-red-300 dark:bg-red-900";
63
+ case 'idle': return "text-gray-700 bg-gray-100 dark:text-gray-300 dark:bg-gray-800";
64
+ default: return "text-slate-700 bg-slate-100 dark:text-slate-300 dark:bg-slate-800";
65
+ }
66
+ };
67
+ const parseStructuredResponse = (action) => {
68
+ try {
69
+ if (action.result && typeof action.result === 'object' && action.result !== null) {
70
+ const result = action.result;
71
+ if (result.structured_response && typeof result.structured_response === 'object') {
72
+ return result.structured_response;
73
+ }
74
+ }
75
+ return null;
76
+ }
77
+ catch {
78
+ return null;
79
+ }
80
+ };
81
+ const formatValue = (value) => {
82
+ if (value === null || value === undefined) {
83
+ return ((0, jsx_runtime_1.jsx)("div", { className: "text-sm text-gray-500 dark:text-gray-400 bg-white dark:bg-gray-800 p-2 rounded border", children: value === null ? 'null' : 'undefined' }));
84
+ }
85
+ if (typeof value === 'object') {
86
+ return ((0, jsx_runtime_1.jsx)("pre", { className: "whitespace-pre-wrap text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: JSON.stringify(value, null, 2) }));
87
+ }
88
+ if (typeof value === 'string') {
89
+ const trimmed = value.trim();
90
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
91
+ try {
92
+ const parsed = JSON.parse(trimmed);
93
+ return ((0, jsx_runtime_1.jsx)("pre", { className: "whitespace-pre-wrap text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: JSON.stringify(parsed, null, 2) }));
94
+ }
95
+ catch {
96
+ }
97
+ }
98
+ return ((0, jsx_runtime_1.jsx)("div", { className: "text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border whitespace-pre-wrap", children: value }));
99
+ }
100
+ return ((0, jsx_runtime_1.jsx)("div", { className: "text-sm text-gray-900 dark:text-gray-100 bg-white dark:bg-gray-800 p-2 rounded border", children: String(value) }));
101
+ };
102
+ const renderMemoryData = (memoryObject) => {
103
+ if (!memoryObject || Object.keys(memoryObject).length === 0) {
104
+ return ((0, jsx_runtime_1.jsx)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: "No memory data" }));
105
+ }
106
+ return ((0, jsx_runtime_1.jsx)("div", { className: "space-y-3", children: Object.entries(memoryObject).map(([key, value]) => ((0, jsx_runtime_1.jsxs)("div", { className: "border-b border-gray-200 dark:border-gray-700 pb-3", children: [(0, jsx_runtime_1.jsx)("div", { className: "text-xs font-medium text-gray-600 dark:text-gray-400 mb-2", children: key }), (0, jsx_runtime_1.jsx)("div", { className: "pl-2", children: formatValue(value) })] }, key))) }));
107
+ };
108
+ return ((0, jsx_runtime_1.jsxs)("div", { className: "h-full w-full bg-gray-50 dark:bg-gray-900 overflow-hidden flex flex-col", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-white dark:bg-gray-800 shadow-sm border-b border-gray-200 dark:border-gray-700 p-6", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsxs)("h1", { className: "text-2xl font-bold text-gray-900 dark:text-gray-100", children: ["Agent: ", config.displayName] }), (0, jsx_runtime_1.jsx)("p", { className: "text-gray-600 dark:text-gray-400 mt-1", children: config.goal })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-4", children: [(0, jsx_runtime_1.jsx)("div", { className: `px-4 py-2 rounded-lg font-medium ${getStatusColor(state.status, state.isRunning)}`, children: state.isRunning ? state.status : 'stopped' }), (0, jsx_runtime_1.jsxs)("div", { className: "flex gap-2", children: [(0, jsx_runtime_1.jsx)("button", { onClick: () => {
109
+ if (state.isRunning) {
110
+ sendCommand({ type: "stop_agent" });
111
+ }
112
+ else {
113
+ sendCommand({ type: "start_agent" });
114
+ }
115
+ }, className: `px-4 py-2 rounded-lg font-medium text-white ${state.isRunning
116
+ ? 'bg-red-600 hover:bg-red-700'
117
+ : 'bg-green-600 hover:bg-green-700'}`, children: state.isRunning ? "Stop Agent" : "Start Agent" }), state.isRunning && ((0, jsx_runtime_1.jsx)("button", { onClick: () => sendCommand({ type: "pause_agent" }), className: "px-4 py-2 bg-yellow-600 hover:bg-yellow-700 text-white rounded-lg font-medium", children: "Pause" }))] })] })] }), (0, jsx_runtime_1.jsx)("div", { className: "mt-6 border-b border-gray-200 dark:border-gray-700", children: (0, jsx_runtime_1.jsx)("nav", { className: "-mb-px flex space-x-8", children: ['status', 'memory', 'actions', 'components'].map((tab) => ((0, jsx_runtime_1.jsx)("button", { onClick: () => setActiveTab(tab), className: `py-2 px-1 border-b-2 font-medium text-sm capitalize ${activeTab === tab
118
+ ? 'border-blue-500 text-blue-600 dark:text-blue-400'
119
+ : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-300'}`, children: tab }, tab))) }) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "flex-1 overflow-auto p-6", children: [activeTab === 'status' && ((0, jsx_runtime_1.jsx)("div", { className: "max-w-6xl mx-auto", children: (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, jsx_runtime_1.jsx)("h3", { className: "font-semibold text-lg mb-4 text-gray-900 dark:text-gray-100", children: "Agent Status" }), (0, jsx_runtime_1.jsxs)("div", { className: "space-y-3", children: [(0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-2 gap-4", children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Running:" }), (0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: state.isRunning ? "✅ Yes" : "❌ No" })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Status:" }), (0, jsx_runtime_1.jsx)("div", { className: "font-medium capitalize", children: state.status })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Cycles/Min:" }), (0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: state.cyclesThisMinute })] }), (0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: "Total Cycles:" }), (0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: state.totalCycles })] })] }), state.lastError && ((0, jsx_runtime_1.jsxs)("div", { className: "mt-4 p-3 bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 rounded", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-sm font-medium text-red-800 dark:text-red-200", children: "Last Error:" }), (0, jsx_runtime_1.jsx)("div", { className: "text-sm text-red-700 dark:text-red-300 mt-1", children: state.lastError })] }))] })] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, jsx_runtime_1.jsx)("h3", { className: "font-semibold text-lg mb-4 text-gray-900 dark:text-gray-100", children: "Current Task" }), state.currentTask ? ((0, jsx_runtime_1.jsxs)("div", { className: "space-y-2", children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium text-gray-900 dark:text-gray-100", children: state.currentTask.description }), (0, jsx_runtime_1.jsx)("div", { className: `inline-flex px-2 py-1 text-xs font-semibold rounded-full ${state.currentTask.status === 'completed' ? 'bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300' :
120
+ state.currentTask.status === 'failed' ? 'bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300' :
121
+ state.currentTask.status === 'in_progress' ? 'bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300' :
122
+ 'bg-gray-100 text-gray-800 dark:bg-gray-900/20 dark:text-gray-300'}`, children: state.currentTask.status.replace('_', ' ') }), (0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400", children: ["Created: ", new Date(state.currentTask.createdAt).toLocaleString()] })] })) : ((0, jsx_runtime_1.jsx)("div", { className: "text-gray-600 dark:text-gray-400", children: "No active task" }))] })] }) })), activeTab === 'memory' && ((0, jsx_runtime_1.jsxs)("div", { className: "max-w-6xl mx-auto space-y-6", children: [(0, jsx_runtime_1.jsxs)("div", { className: "flex items-center justify-between", children: [(0, jsx_runtime_1.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Memory State" }), (0, jsx_runtime_1.jsx)("button", { onClick: () => void fetchMemoryData(), disabled: loading, className: "px-4 py-2 bg-blue-600 hover:bg-blue-700 text-white rounded-lg disabled:opacity-50", children: loading ? 'Loading...' : 'Refresh Memory' })] }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 lg:grid-cols-2 gap-6", children: [(0, jsx_runtime_1.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, jsx_runtime_1.jsx)("h4", { className: "font-medium text-lg mb-3 text-gray-900 dark:text-gray-100", children: "Working Memory" }), (0, jsx_runtime_1.jsx)("div", { className: "bg-gray-50 dark:bg-gray-900 p-4 rounded border max-h-96 overflow-y-auto", children: renderMemoryData(memoryData.working) })] }), (0, jsx_runtime_1.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-6 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, jsx_runtime_1.jsx)("h4", { className: "font-medium text-lg mb-3 text-gray-900 dark:text-gray-100", children: "Persistent Memory" }), (0, jsx_runtime_1.jsx)("div", { className: "bg-gray-50 dark:bg-gray-900 p-4 rounded border max-h-96 overflow-y-auto", children: renderMemoryData(memoryData.persistent) })] })] })] })), activeTab === 'actions' && ((0, jsx_runtime_1.jsxs)("div", { className: "max-w-6xl mx-auto space-y-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Recent Actions" }), (0, jsx_runtime_1.jsx)("div", { className: "space-y-3", children: state.recentActions.slice(0, 20).map((action, index) => {
123
+ const structured = parseStructuredResponse(action);
124
+ const isCycleStart = action.type === 'analysis' && (action.description?.includes('cycle') || action.description?.includes('Initialization'));
125
+ const prevAction = index > 0 ? state.recentActions[index - 1] : null;
126
+ const showCycleBoundary = isCycleStart && prevAction;
127
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [showCycleBoundary && ((0, jsx_runtime_1.jsxs)("div", { className: "flex items-center my-6", children: [(0, jsx_runtime_1.jsx)("div", { className: "flex-1 border-t border-gray-300 dark:border-gray-600" }), (0, jsx_runtime_1.jsx)("div", { className: "px-4 text-sm font-medium text-gray-600 dark:text-gray-400 bg-gray-50 dark:bg-gray-800 rounded-full border border-gray-300 dark:border-gray-600", children: action.description?.includes('Initialization') ? 'INITIALIZATION CYCLE' : 'NEW DECISION CYCLE' }), (0, jsx_runtime_1.jsx)("div", { className: "flex-1 border-t border-gray-300 dark:border-gray-600" })] })), (0, jsx_runtime_1.jsxs)("div", { className: `bg-white dark:bg-gray-800 rounded-lg p-4 shadow-sm border border-gray-200 dark:border-gray-700 ${isCycleStart ? 'border-l-4 border-l-blue-500 dark:border-l-blue-400' : ''}`, children: [(0, jsx_runtime_1.jsx)("div", { className: "flex items-start justify-between mb-2", children: (0, jsx_runtime_1.jsxs)("div", { className: "flex items-center gap-3", children: [(0, jsx_runtime_1.jsx)("span", { className: `inline-flex px-2 py-1 text-xs font-semibold rounded-full ${action.success ? 'bg-green-100 text-green-800 dark:bg-green-900/20 dark:text-green-300' :
128
+ 'bg-red-100 text-red-800 dark:bg-red-900/20 dark:text-red-300'}`, children: action.type.replace('_', ' ') }), (0, jsx_runtime_1.jsx)("span", { className: "text-sm text-gray-600 dark:text-gray-400", children: new Date(action.timestamp).toLocaleString() }), isCycleStart && ((0, jsx_runtime_1.jsx)("span", { className: "inline-flex px-2 py-1 text-xs font-semibold rounded-full bg-blue-100 text-blue-800 dark:bg-blue-900/20 dark:text-blue-300", children: "CYCLE START" }))] }) }), (0, jsx_runtime_1.jsx)("div", { className: "text-gray-900 dark:text-gray-100 font-medium mb-1", children: structured?.decision || action.description }), structured?.why && ((0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, jsx_runtime_1.jsx)("strong", { children: "Why:" }), " ", structured.why] })), action.parameters && Object.keys(action.parameters).length > 0 && ((0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, jsx_runtime_1.jsx)("strong", { children: "Parameters:" }), (0, jsx_runtime_1.jsx)("div", { className: "mt-1 pl-2", children: formatValue(action.parameters) })] })), action.result && ((0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: [(0, jsx_runtime_1.jsx)("strong", { children: "Result:" }), (0, jsx_runtime_1.jsx)("div", { className: "mt-1 pl-2", children: formatValue(action.result) })] })), action.error && ((0, jsx_runtime_1.jsxs)("div", { className: "text-sm text-red-600 dark:text-red-400 bg-red-50 dark:bg-red-900/20 p-2 rounded mt-2", children: [(0, jsx_runtime_1.jsx)("strong", { children: "Error:" }), " ", action.error] }))] })] }, `${action.id}-${index}`));
129
+ }) })] })), activeTab === 'components' && ((0, jsx_runtime_1.jsxs)("div", { className: "max-w-6xl mx-auto space-y-4", children: [(0, jsx_runtime_1.jsx)("h3", { className: "font-semibold text-lg text-gray-900 dark:text-gray-100", children: "Discovered Components" }), (0, jsx_runtime_1.jsxs)("div", { className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4", children: [state.discoveredComponents.map((component) => ((0, jsx_runtime_1.jsxs)("div", { className: "bg-white dark:bg-gray-800 rounded-lg p-4 shadow-sm border border-gray-200 dark:border-gray-700", children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium text-gray-900 dark:text-gray-100", children: component.id }), (0, jsx_runtime_1.jsx)("div", { className: "text-sm text-gray-600 dark:text-gray-400 mb-2", children: component.type }), (0, jsx_runtime_1.jsxs)("div", { className: "text-xs", children: [(0, jsx_runtime_1.jsx)("span", { className: "text-gray-600 dark:text-gray-400", children: "Capabilities:" }), (0, jsx_runtime_1.jsx)("div", { className: "flex flex-wrap gap-1 mt-1", children: component.capabilities.map((capability, index) => ((0, jsx_runtime_1.jsx)("span", { className: "inline-flex px-1 py-0.5 bg-gray-100 dark:bg-gray-700 text-gray-700 dark:text-gray-300 rounded text-xs", children: capability }, index))) })] })] }, component.id))), state.discoveredComponents.length === 0 && ((0, jsx_runtime_1.jsx)("div", { className: "col-span-full text-center text-gray-600 dark:text-gray-400 py-8", children: "No components discovered yet" }))] })] }))] })] }));
130
+ }
131
+ exports.default = FullscreenView;
132
+ //# sourceMappingURL=fullscreen-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fullscreen-view.js","sourceRoot":"","sources":["../../src/util.agent/fullscreen-view.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,126 @@
1
+ import type Registration from "@norskvideo/norsk-studio/lib/extension/registration";
2
+ export default function ({ defineComponent, validation: { Z }, }: Registration): import("@norskvideo/norsk-studio/lib/extension/client-types").NodeInfo<{
3
+ id: string;
4
+ displayName: string;
5
+ systemPrompt: string;
6
+ goal: string;
7
+ maxCyclesPerMinute?: number;
8
+ notes?: string;
9
+ }, {
10
+ status: "idle" | "analyzing" | "planning" | "executing" | "paused" | "error";
11
+ isRunning: boolean;
12
+ currentTask?: {
13
+ id: string;
14
+ description: string;
15
+ status: "pending" | "in_progress" | "completed" | "failed";
16
+ createdAt: string;
17
+ completedAt?: string;
18
+ result?: string;
19
+ error?: string;
20
+ };
21
+ completedTasks: {
22
+ id: string;
23
+ description: string;
24
+ status: "pending" | "in_progress" | "completed" | "failed";
25
+ createdAt: string;
26
+ completedAt?: string;
27
+ result?: string;
28
+ error?: string;
29
+ }[];
30
+ recentActions: {
31
+ id: string;
32
+ type: "tool_call" | "component_command" | "event_subscribe" | "analysis";
33
+ timestamp: string;
34
+ description: string;
35
+ parameters?: {
36
+ [key: string]: unknown;
37
+ };
38
+ result?: {
39
+ [key: string]: unknown;
40
+ };
41
+ success: boolean;
42
+ error?: string;
43
+ }[];
44
+ lastError?: string;
45
+ cyclesThisMinute: number;
46
+ totalCycles: number;
47
+ startedAt?: string;
48
+ lastCycleAt?: string;
49
+ discoveredComponents: {
50
+ id: string;
51
+ type: string;
52
+ capabilities: string[];
53
+ }[];
54
+ subscribedEvents: {
55
+ componentId: string;
56
+ eventType: string;
57
+ }[];
58
+ }, {
59
+ type: "start_agent";
60
+ } | {
61
+ type: "stop_agent";
62
+ } | {
63
+ type: "pause_agent";
64
+ } | {
65
+ type: "resume_agent";
66
+ } | {
67
+ type: "assign_task";
68
+ description: string;
69
+ } | {
70
+ type: "cancel_task";
71
+ taskId: string;
72
+ } | {
73
+ type: "update_goal";
74
+ goal: string;
75
+ }, {
76
+ type: "agent_started";
77
+ timestamp: string;
78
+ } | {
79
+ type: "agent_stopped";
80
+ timestamp: string;
81
+ } | {
82
+ type: "task_created";
83
+ task: {
84
+ id: string;
85
+ description: string;
86
+ status: "pending" | "in_progress" | "completed" | "failed";
87
+ createdAt: string;
88
+ completedAt?: string;
89
+ result?: string;
90
+ error?: string;
91
+ };
92
+ } | {
93
+ type: "task_completed";
94
+ task: {
95
+ id: string;
96
+ description: string;
97
+ status: "pending" | "in_progress" | "completed" | "failed";
98
+ createdAt: string;
99
+ completedAt?: string;
100
+ result?: string;
101
+ error?: string;
102
+ };
103
+ } | {
104
+ type: "action_taken";
105
+ action: {
106
+ id: string;
107
+ type: "tool_call" | "component_command" | "event_subscribe" | "analysis";
108
+ timestamp: string;
109
+ description: string;
110
+ parameters?: {
111
+ [key: string]: unknown;
112
+ };
113
+ result?: {
114
+ [key: string]: unknown;
115
+ };
116
+ success: boolean;
117
+ error?: string;
118
+ };
119
+ } | {
120
+ type: "error_occurred";
121
+ error: string;
122
+ } | {
123
+ type: "component_discovered";
124
+ componentId: string;
125
+ capabilities: string[];
126
+ }>;
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = default_1;
7
+ const summary_view_1 = __importDefault(require("./summary-view"));
8
+ const inline_view_1 = __importDefault(require("./inline-view"));
9
+ const fullscreen_view_1 = __importDefault(require("./fullscreen-view"));
10
+ function default_1({ defineComponent, validation: { Z }, }) {
11
+ return defineComponent({
12
+ identifier: 'util.agent',
13
+ category: 'processor',
14
+ name: "Autonomous Agent",
15
+ description: "An autonomous AI agent that can analyze the workflow, execute tasks, and interact with other components using natural language instructions. Supports tool calling, event monitoring, and autonomous decision making.",
16
+ subscription: {},
17
+ display: (_desc) => { return {}; },
18
+ runtime: {
19
+ summary: summary_view_1.default,
20
+ inline: inline_view_1.default,
21
+ fullscreen: fullscreen_view_1.default,
22
+ initialState: () => ({
23
+ status: 'analyzing',
24
+ isRunning: true,
25
+ currentTask: undefined,
26
+ completedTasks: [],
27
+ recentActions: [],
28
+ lastError: undefined,
29
+ cyclesThisMinute: 0,
30
+ totalCycles: 0,
31
+ startedAt: undefined,
32
+ lastCycleAt: undefined,
33
+ discoveredComponents: [],
34
+ subscribedEvents: []
35
+ }),
36
+ handleEvent(ev, state) {
37
+ const evType = ev.type;
38
+ switch (evType) {
39
+ case 'agent_started':
40
+ state.isRunning = true;
41
+ state.status = 'analyzing';
42
+ state.startedAt = ev.timestamp;
43
+ break;
44
+ case 'agent_stopped':
45
+ state.isRunning = false;
46
+ state.status = 'idle';
47
+ state.currentTask = undefined;
48
+ break;
49
+ case 'task_created':
50
+ state.currentTask = ev.task;
51
+ state.status = 'planning';
52
+ break;
53
+ case 'task_completed':
54
+ state.completedTasks.push(ev.task);
55
+ state.currentTask = undefined;
56
+ state.status = state.isRunning ? 'analyzing' : 'idle';
57
+ break;
58
+ case 'action_taken':
59
+ state.recentActions.unshift(ev.action);
60
+ if (state.recentActions.length > 50) {
61
+ state.recentActions = state.recentActions.slice(0, 50);
62
+ }
63
+ if (ev.action.parameters && typeof ev.action.parameters === 'object') {
64
+ const params = ev.action.parameters;
65
+ if (params.actionType === 'decision_cycle' || params.actionType === 'init_cycle') {
66
+ if (typeof params.cyclesThisMinute === 'number') {
67
+ state.cyclesThisMinute = params.cyclesThisMinute;
68
+ }
69
+ if (typeof params.totalCycles === 'number') {
70
+ state.totalCycles = Math.max(state.totalCycles, params.totalCycles);
71
+ }
72
+ }
73
+ else if (params.actionType === 'cycle_reset') {
74
+ state.cyclesThisMinute = 0;
75
+ }
76
+ }
77
+ break;
78
+ case 'error_occurred':
79
+ state.lastError = ev.error;
80
+ state.status = 'error';
81
+ break;
82
+ case 'component_discovered': {
83
+ const existingComponent = state.discoveredComponents.find(c => c.id === ev.componentId);
84
+ if (!existingComponent) {
85
+ state.discoveredComponents.push({
86
+ id: ev.componentId,
87
+ type: 'unknown',
88
+ capabilities: ev.capabilities
89
+ });
90
+ }
91
+ break;
92
+ }
93
+ default:
94
+ assertUnreachable(evType);
95
+ }
96
+ return { ...state };
97
+ }
98
+ },
99
+ configForm: {
100
+ form: {
101
+ systemPrompt: {
102
+ help: "System prompt that defines the agent's role and capabilities",
103
+ advanced: true,
104
+ hint: {
105
+ type: 'text',
106
+ validation: Z.string().min(10).max(5000),
107
+ defaultValue: 'You are an autonomous AI agent integrated into a video processing workflow. You can analyze components, execute commands, monitor events, and make decisions to achieve your assigned goals. You have access to workflow components and can interact with them through tool calls.'
108
+ }
109
+ },
110
+ goal: {
111
+ help: "The primary goal or objective for this agent",
112
+ hint: {
113
+ type: 'text',
114
+ validation: Z.string().min(5).max(1000),
115
+ defaultValue: 'Monitor the workflow and ensure all components are operating correctly. Respond to errors and optimize performance when possible.'
116
+ }
117
+ },
118
+ maxCyclesPerMinute: {
119
+ advanced: true,
120
+ help: "Maximum number of decision cycles per minute (prevents runaway behavior)",
121
+ hint: {
122
+ type: 'numeric',
123
+ validation: Z.number().min(1).max(60),
124
+ defaultValue: 6
125
+ }
126
+ },
127
+ notes: {
128
+ help: "Notes about this autonomous agent",
129
+ hint: {
130
+ type: 'text',
131
+ optional: true
132
+ }
133
+ },
134
+ }
135
+ }
136
+ });
137
+ }
138
+ function assertUnreachable(_) {
139
+ throw new Error("Didn't expect to get here");
140
+ }
141
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../src/util.agent/info.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { AgentState, AgentSettings } from "./runtime";
2
+ declare function InlineView({ state, config }: {
3
+ state: AgentState;
4
+ config: AgentSettings;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ export default InlineView;
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ function InlineView({ state, config }) {
5
+ const recentDecision = state.recentActions.find(action => {
6
+ if (action.type === 'analysis' && action.result && typeof action.result === 'object') {
7
+ const result = action.result;
8
+ return result.structured_response?.decision;
9
+ }
10
+ return false;
11
+ });
12
+ const getStatusColor = (status, isRunning) => {
13
+ if (!isRunning)
14
+ return "text-gray-500 dark:text-gray-400";
15
+ switch (status) {
16
+ case 'analyzing': return "text-blue-600 dark:text-blue-400";
17
+ case 'planning': return "text-yellow-600 dark:text-yellow-400";
18
+ case 'executing': return "text-green-600 dark:text-green-400";
19
+ case 'error': return "text-red-600 dark:text-red-400";
20
+ case 'idle': return "text-gray-600 dark:text-gray-400";
21
+ default: return "text-slate-600 dark:text-slate-400";
22
+ }
23
+ };
24
+ const getStatusIcon = (status, isRunning) => {
25
+ if (!isRunning)
26
+ return "⏸️";
27
+ switch (status) {
28
+ case 'analyzing': return "🔍";
29
+ case 'planning': return "📋";
30
+ case 'executing': return "⚡";
31
+ case 'error': return "❌";
32
+ case 'idle': return "💤";
33
+ default: return "🤖";
34
+ }
35
+ };
36
+ return ((0, jsx_runtime_1.jsx)("div", { id: `agent-${config.id}`, className: "p-3 space-y-2", children: (0, jsx_runtime_1.jsxs)("div", { className: "w-80 grid grid-cols-[min-content,1fr] gap-x-3 gap-y-1 text-sm", children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: "Status:" }), (0, jsx_runtime_1.jsxs)("div", { className: `flex items-center gap-2 ${getStatusColor(state.status, state.isRunning)}`, children: [(0, jsx_runtime_1.jsx)("span", { children: getStatusIcon(state.status, state.isRunning) }), (0, jsx_runtime_1.jsx)("span", { className: "capitalize", children: state.isRunning ? state.status : 'stopped' })] }), (0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: "Cycles:" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-slate-700 dark:text-slate-300", children: [state.cyclesThisMinute, "/min \u2022 ", state.totalCycles, " total"] }), (0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: "Goal:" }), (0, jsx_runtime_1.jsx)("div", { className: "text-slate-700 dark:text-slate-300 truncate", title: config.goal, children: config.goal }), recentDecision && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: "Recent:" }), (0, jsx_runtime_1.jsx)("div", { className: "text-slate-700 dark:text-slate-300 truncate", title: recentDecision.result && typeof recentDecision.result === 'object' ?
37
+ recentDecision.result.structured_response?.decision :
38
+ recentDecision.description, children: recentDecision.result && typeof recentDecision.result === 'object' ?
39
+ recentDecision.result.structured_response?.decision :
40
+ recentDecision.description })] })), (0, jsx_runtime_1.jsx)("div", { className: "font-medium", children: "Components:" }), (0, jsx_runtime_1.jsxs)("div", { className: "text-slate-700 dark:text-slate-300", children: [state.discoveredComponents.length, " discovered"] }), state.lastError && ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("div", { className: "font-medium text-red-600", children: "Error:" }), (0, jsx_runtime_1.jsx)("div", { className: "text-red-600 dark:text-red-400 truncate text-xs", title: state.lastError, children: state.lastError })] }))] }) }));
41
+ }
42
+ exports.default = InlineView;
43
+ //# sourceMappingURL=inline-view.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"inline-view.js","sourceRoot":"","sources":["../../src/util.agent/inline-view.tsx"],"names":[],"mappings":"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"}